SQL 服务器:如何在更新触发器中循环删除 table 并将每一行转换为 JSON

SQL Server: How to loop through the Deleted table in update trigger and convert each row into JSON

我创建了一个 Update 触发器,它将删除的行作为 JSON 并将它们作为列保存到另一个 table 中。

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

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

您可以尝试以下方法:

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