我有这种情况,
INSERT INTO TABLE1()...
--Get the primary key from the above insert
SELECT @@identidy
INSERT INTO TABLE2()...
自动生成的主键必须是表2中的外键。如何构造第二个INSERT以获得@@ identity的值?
这似乎不起作用,
INSERT INTO TABLE1 (user_id, name) (@@identity, 'ABC')
我收到错误Must declare variable '@@identidy'.
干杯!!
答案 0 :(得分:1)
1)你拼错了@@identity
错误(@@identidy
)
2)您应该创建一个局部变量(@LastIdentity
),以便在第一次插入后立即存储最后插入的标识。然后使用该变量作为第二个INSERT
的输入:
DECLARE @LastIdentity int
INSERT INTO TABLE1()...
--Get the primary key from the above insert
SELECT @LastIdentity = @@identity
INSERT INTO TABLE2(...) VALUES (@LastIdentity, ...