在表中插入数据之前,是否可以获取Id(IDENTITY)的新值?

Pat*_*ier 5 c# sql sql-server identity foreign-keys

在表中插入数据之前,是否可以获取Id(IDENTITY)的新值?

有可能写出类似的东西:

INSERT INTO Table1
SELECT *GET_NEW_IDENTITY*, Field1, Field2 FROM Table2
Run Code Online (Sandbox Code Playgroud)

我需要Id的值,因为我想在Table1中插入数据,然后,在另一个表中插入数据,该表具有链接到Table1的外键(带有Id)

小智 6

IDENT_CURRENT.返回为指定表或视图生成的最后一个标识值.生成的最后一个标识值可以用于任何会话和任何范围.

SCOPE_IDENTITY.返回插入同一范围内的标识列的最后一个标识值.范围是一个模块:存储过程,触发器,函数或批处理.

OUTPUT.返回受INSERT,UPDATE,DELETE或MERGE语句影响的每一行的信息或表达式.[...]在INSERT或UPDATE操作之后,OUTPUT子句可用于检索标识或计算列的值.

  • 从来没有在任何情况下使用ident_current,如果你有多个用户,它将不会返回正确的结果!如果您的版本不支持输出子句,则输出是最佳选择或scope_identity(). (2认同)