如何返回插入的最后一个主键

时间:2011-07-27 10:52:10

标签: sql tsql informix scope-identity

我在informix中询问替代或类似查询以执行以下操作:

INSERT INTO days (depcode,studycode,batchnum) values (1,2,3);SELECT SCOPE_IDENTITY();

我希望查询在插入语句

期间返回SCOPE_IDENTITY()

2 个答案:

答案 0 :(得分:2)

我知道在t-sql中你有OUTPUT语句吗? 其中[KEY]是主键的列名,而@OUT_KEY是您需要声明的变量

INSERT INTO days
(
  depcode,
  studycode,
  batchnum
)
OUTPUT INSERTED.[KEY] INTO @OUT_KEY
VALUES
(
  1,2,3
)

修改

对于informix,您可以使用

SELECT DBINFO( 'sqlca.sqlerrd1' )
FROM systables
WHERE tabid = 1;

假设你的pk列是SERIAL

答案 1 :(得分:0)

插入行后我使用了这个sql语句Select @@Identity。它给了我最后插入的行的ID。我正在使用accessdatabase。我不知道它是否适用于您的数据库。