0

挿入直後に ID 列用に作成された最後の ID を取得したいのですが、IDENTITY_VAL_LOCAL() を使用したいと考えています。私のテスト中、私は2つの異なる動作をしました。

このような命令を使用すると、正常に機能します。

 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

これを使用するだけです:

VALUES IDENTITY_VAL_LOCAL()

于 2014-02-17T05:38:09.237 に答える
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 に答える
0

最後に挿入された ID 列を取得する正しい構文は次のとおりです。

SELECT IDENTITY_VAL_LOCAL() AS IDENTITY FROM SYSIBM.SYSDUMMY1

于 2013-11-21T13:33:01.400 に答える