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
我创建了一个 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