在我的UPDATE
查询中,我想将deleted
和inserted
值存储到不同的数据库表中。
所以我的查询需要看起来像这样:
UPDATE A_TABLE
SET table_column = 'something'
OUTPUT deleted.*
INTO audit.deleted_content
OUTPUT inserted.*
INTO audit.inserted_content
WHERE blah = 'something else'
但是我的第二个INTO
关键字('into'附近的语法不正确)会出现问题。有没有正确的方法来实现上述目标?
答案 0 :(得分: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