Sql-Server

將 UPDATE 語句的 OUTPUT 定向到局部變數

  • May 16, 2019

我想這樣做:

DECLARE @Id INT;

UPDATE Logins
SET    SomeField = 'some value'
OUTPUT @Id = Id
WHERE  EmailAddress = @EmailAddress -- this is a parameter of the sproc

這甚至可能嗎?我知道我可以聲明一個本地表變數並將輸出定向到那裡,但如果可能的話我寧願跳過它

不,因為您可能會OUTPUT處理多行,這不適合標量變數。

您需要輸出到@Table變數或聲明的表中以處理多行輸出。

declare @status_atividade bit;

update t1 set         
   t1.idioma = t2.idioma, 
   t1.regiao = t2.regiao, 
   t1.fuso_horario = t2.fuso_horario,
   @status_atividade = t2.status_atividade

from 
   @usuario as t1  
join 
   dbo.locatario as  t2 
on 
   t1.id_locatario = t2.id_locatario

select @status_atividade

引用自:https://dba.stackexchange.com/questions/22684