Mysql 创建INSERT-OUTPUT-INSERT查询

Mysql 创建INSERT-OUTPUT-INSERT查询,mysql,sql-server,Mysql,Sql Server,我有一个Access前端,可以将查询推送到SQL Server Express 2012后端。我在两个表之间有一个1对1的关系,需要在每个表中插入一条记录(使用未绑定表单)。在access中,我可以创建一个包含两个表的视图,并且记录将自动生成,其中第一个表的PK将用作下一个表的FK。SQL则不同。我试图使用输出参数,但不理解语法。这就是我所拥有的: INSERT into tblInsp (clmInsDate, clmDistrictNumber, clmBandColor) VALUES (

我有一个Access前端,可以将查询推送到SQL Server Express 2012后端。我在两个表之间有一个1对1的关系,需要在每个表中插入一条记录(使用未绑定表单)。在access中,我可以创建一个包含两个表的视图,并且记录将自动生成,其中第一个表的PK将用作下一个表的FK。SQL则不同。我试图使用输出参数,但不理解语法。这就是我所拥有的:

INSERT into tblInsp (clmInsDate, clmDistrictNumber, clmBandColor)
VALUES ('1-1-15',4,6)
OUTPUT INSERTED.InspectionKEY AS myVar ;somehow get the value
INTO xtblInspRef (clmInsp, clmRefNumber, clmInspType)
VALUES (myVar,231,3)    ;use the identity as foreign key
我对SQL不熟悉,但在学习过程中不断进步。以下是关系的图像:

我找到了一种方法,可以使用临时表来完成我想做的事情:

DECLARE @scratch AS TABLE(InspectionKey int, clmRefNumber int, clmInspType int) 

INSERT INTO tblInsp (clmInsDate, clmBandColor, clmDistrictNumbr, clmCalibrationBlock, clmTGauge, clmHarTester,clmInspecter) 
    OUTPUT INSERTED.InspectionKey, 231, 3 
    INTO @scratch 
VALUES ('1-1-15',4,6) 
INSERT INTO xtblInspRef (clmInsp, clmRefNumber, clmInspType) 
SELECT InspectionKey, clmrefnumber,clmInspType 
FROM @scratch

tblInsp.InspectionKEY
列是否为
INT-IDENTITY(n,n)
列?如果是这样,您可以使用系统函数
@@IDENTITY
。请参见不要使用@标识。如果您有一个执行插入的触发器,您将获得该值,而不是您想要的值。您应该改为使用SCOPE_IDENTITY。当然,因为这是一个单行插入,所以您可以只使用INSERTED.InspectionKey,这样行吗?插入tblInsp(clmInsDate、clmDistrictNumber、clmBandColor)值('1-1-15',4,6)输出插入。检查键插入xtblInspRef(clmInsp、clmRefNumber、clmInspType)值(插入。检查键,231,3)花了我一段时间查看了大量示例和大量测试。msdn网站对我来说过于武断,以至于我还无法阅读