我想在插入后立即检索为标识列创建的最后一个 ID,并且我想使用 IDENTITY_VAL_LOCAL()。在我的测试过程中,我有两种不同的行为。
当我使用这样的指令时,效果很好。
INSERT INTO(fld1,fld2, ..) VALUES (val1,val2 )
但是当我调用更复杂的插入时,NULL 会返回给我。我有类似的东西:
INSERT INTO(fld1,fld2, ..) SELECT a,b,c,.. FROM tbl1,tbl2.. WHERE ...
是因为它只适用于 INSERT/VALUE 调用还是我应该看看其他的东西?
就用这个:
VALUES IDENTITY_VAL_LOCAL()
试试这个
INSERT INTO Tablename(fld1,fld2, ..) VALUES (val1,val2 )
SELECT SCOPE_IDENTITY()
INSERT INTO Tablename(fld1,fld2, ..) SELECT a,b,c,.. FROM tbl1,tbl2.. WHERE ...
SELECT SCOPE_IDENTITY()
检索最后插入的标识列的正确语法是:
SELECT IDENTITY_VAL_LOCAL() AS IDENTITY FROM SYSIBM.SYSDUMMY1