SQL Server:如何在更新触发器中循环通过Deleted表并将每一行转换为JSON

问题描述 投票:0回答:1

我创建了一个Update触发器,该触发器以JSON格式获取已删除的行,并将其作为列保存到另一个表中。

CREATE TRIGGER UpdateTrigger on [Table1]
FOR UPDATE 
AS
   DECLARE @json nvarchar(max) = (SELECT * FROM Deleted FOR JSON PATH)
   INSERT INTO [Table2](Id, Record) VALUES (NEWID(), @json);
GO

我想更改逻辑,以便Table2表中的每一行都有一个插入到Deleted中。如何遍历Deleted表并将每一行转换为JSON并将其保存到Table2

json sql-server database-trigger
1个回答
2
投票

您可以尝试以下方法:

CREATE TRIGGER UpdateTrigger on [Table1]
FOR UPDATE 
AS
   INSERT INTO [Table2] (Id, Record) 
   SELECT 
      NEWID(),
      Record = (SELECT Column1, Column2, Column3, Column4, Column5, Column6 FOR JSON PATH)
   FROM Deleted
GO
© www.soinside.com 2019 - 2024. All rights reserved.