将 UPDATE 语句的 OUTPUT 定向到局部变量

And*_*nea 12 sql-server-2008 sql-server sql-server-2012 update output-clause

我想这样做:

DECLARE @Id INT;

UPDATE Logins
SET    SomeField = 'some value'
OUTPUT @Id = Id
WHERE  EmailAddress = @EmailAddress -- this is a parameter of the sproc
Run Code Online (Sandbox Code Playgroud)

这甚至可能吗?我知道我可以声明一个本地表变量并将输出定向到那里,但如果可能的话我宁愿跳过它

JNK*_*JNK 15

不,因为您可能会输入OUTPUT多行,这些行不适合标量变量。

您需要输出到@Table变量或声明的表中以处理多行输出。