0

我想在插入后立即检索为标识列创建的最后一个 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 调用还是我看看别的东西?

4

3 回答 3

2

尝试这个

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()
于 2013-04-11T13:35:15.400 回答
2

只需使用这个:

VALUES IDENTITY_VAL_LOCAL()

于 2014-02-17T05:38:09.237 回答
0

检索最后插入的标识列的正确语法是:

SELECT IDENTITY_VAL_LOCAL() AS IDENTITY FROM SYSIBM.SYSDUMMY1

于 2013-11-21T13:33:01.400 回答