无意间发现的当使用Update 的 Output 子句和SCOPE_IDENTITY() 函数一起使用的时候,会出现SCOPE_IDENTITY()函数的值为null
下面为代码示例
1、创建测试表
CREATE TABLE tt1 (id INT IDENTITY,name NVARCHAR(20))
CREATE TABLE tt2 (id INT IDENTITY, name NVARCHAR(20))
2、插入测试数据
INSERT INTO dbo.tt2 (name) VALUES ('测试')
3、使用Output子句查询SCOPE_IDENTIFY()函数值
UPDATE dbo.tt2 SET name='ewe'
OUTPUT Inserted.name
INTO dbo.tt1
SELECT * FROM tt1
SELECT * FROM dbo.tt2
SELECT SCOPE_IDENTITY()
查看结果
可以看到无论执行多少次,使用SCOPE_IDENTIFY()函数获取值的时候始终是空
(注意:貌似只有Update的output子句会这样,但是Insert的output子句是正常的,可以用SCOPT_IDENTIFY()的值)