在我的UPDATE查询中,我想将deletedinserted值存储到单独的数据库表中。

所以我的查询需要看起来像这样:

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/

10-10 04:00