在我的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”附近的语法不正确)。有没有完成上述目标的正确方法? 最佳答案
您可以使用一个临时表来保存结果,并像下面这样插入:
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;
右耳机演示:http://rextester.com/BVSFRJ92976
关于sql - 同时使用INSERTED和DELETED from和OUTPUT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44597666/