使用@@ identity进行连续插入

时间:2016-04-11 14:16:25

标签: sql sybase sybase-ase

我有这种情况,

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'.

干杯!!

1 个答案:

答案 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, ...