2017-06-16 78 views
3

在我的UPDATE查詢中,我想將deletedinserted值存儲到單獨的數據庫表中。使用INSERTED和DELETED from和OUTPUT

所以我的查詢需要看起來像這樣:

UPDATE A_TABLE 
    SET table_column = 'something' 
    OUTPUT deleted.* 
    INTO audit.deleted_content 

    OUTPUT inserted.* 
    INTO audit.inserted_content 
    WHERE blah = 'something else' 

但是我在我的第二個INTO關鍵字得到的一個問題(不正確的語法附近「變成」)。有沒有正確的方法來完成上述?

回答

2

您可以使用一個臨時表來保存結果後做你插入像這樣:

create table #audit (
    deleted_table_column varchar(32) 
    , inserted_table_column varchar(32) 
) 

update A_table 
    set table_column = 'something' 
    output deleted.table_column, inserted.table_column 
    into #audit 
    where blah = 'something else' 


insert into audit.deleted_content 
select deleted_table_column from #audit; 

insert into audit.inserted_content 
select inserted_table_column from #audit; 

rextester演示:http://rextester.com/BVSFRJ92976

相關問題