MS SQL使用IDENT_CURRENT作为查询变量

MS SQL使用IDENT_CURRENT作为查询变量,sql,sql-server,Sql,Sql Server,我需要在正在编写的查询中使用特定表的当前标识 我不想做一个存储ID的查询和另一个使用它的查询。我想要一些像: UPDATE my_table1 SET my_column1 = IDENT_CURRENT(my_table2) WHERE my_column2 = ? 可能吗?是的,此代码可以正常工作。 函数IDENT_CURRENT的表名必须在配额中: UPDATE my_table1 SET my_column1 = IDENT_CURRENT('my_table2') WHERE my_

我需要在正在编写的查询中使用特定表的当前标识

我不想做一个存储ID的查询和另一个使用它的查询。我想要一些像:

UPDATE my_table1
SET my_column1 = IDENT_CURRENT(my_table2)
WHERE my_column2 = ?

可能吗?

是的,此代码可以正常工作。 函数
IDENT_CURRENT
的表名必须在配额中:

UPDATE my_table1
SET my_column1 = IDENT_CURRENT('my_table2')
WHERE my_column2 = ?

是的,这个代码可以正常工作。 函数
IDENT_CURRENT
的表名必须在配额中:

UPDATE my_table1
SET my_column1 = IDENT_CURRENT('my_table2')
WHERE my_column2 = ?

需要在表名周围加引号

UPDATE my_table1
SET my_column1 = IDENT_CURRENT('my_table2')
WHERE my_column2 = ?

需要在表名周围加引号

UPDATE my_table1
SET my_column1 = IDENT_CURRENT('my_table2')
WHERE my_column2 = ?

进行编辑。尝试在调用IDENT_current时将表名用引号引起来。您放置的代码示例已在函数参数中用引号引起来。已进行编辑。尝试在调用IDENT_current时将表名加引号。您放置的代码示例已在函数参数中用引号括起了名称。是的,引号是问题所在,谢谢。但它不需要最终答案的选择陈述是的,是引用问题,谢谢。但最终答案不需要选择状态,为什么要这样做?如果并发会话插入到
my_table2
中,则
IDENT_CURRENT
的值可能完全没有意义。我将获取在此查询之前编辑的表的
IDENT_CURRENT
,然后使用此查询将匹配条件的所有元素分配给先前生成的行。当前识别码是自动递增的。这不是线程安全的。您应该使用
OUTPUT
子句获取刚刚插入的值。
IDENT_CURRENT
应该获取我正在使用的SQL会话的最后一个ID。。。否?否。
返回为指定表或视图生成的最后一个标识值。最后生成的标识值可用于**任何**会话和任何作用域。
。您可以使用
SCOPE\u IDENTITY()
OUTPUT
子句进行此操作。为什么要这样做?如果并发会话插入到
my_table2
中,则
IDENT_CURRENT
的值可能完全没有意义。我将获取在此查询之前编辑的表的
IDENT_CURRENT
,然后使用此查询将匹配条件的所有元素分配给先前生成的行。当前识别码是自动递增的。这不是线程安全的。您应该使用
OUTPUT
子句获取刚刚插入的值。
IDENT_CURRENT
应该获取我正在使用的SQL会话的最后一个ID。。。否?否。
返回为指定表或视图生成的最后一个标识值。最后生成的标识值可用于**任何**会话和任何作用域。
。您可以使用
SCOPE\u IDENTITY()
OUTPUT
子句进行此操作。