XML : Convert JSON Table to XML Table (SQL Server)

How can i convert ALL JSON fields [nvarchar(max)] from TableJSON to XML fileds in TableXML when TableJSON Update or Inserted.(TRIGGER)

TableJSON indludes 100 JSON fileds [type: nvarchar(max)].

Get all nvarchar(max) files:

   DECLARE @COLUMN_NAME nvarchar(max)          SELECT @COLUMN_NAME = COLUMN_NAME          FROM INFORMATION_SCHEMA.COLUMNS          WHERE TABLE_NAME = 'TableJSON' AND DATA_TYPE LIKE 'nvarchar' AND CHARACTER_MAXIMUM_LENGTH = -1 --NVARCHAR(MAX)    

Convert JSON to XML: https://www.simple-talk.com/sql/t-sql-programming/consuming-json-strings-in-sql-server/

  TableJSON:     ID        bigint,     Code      char(10),     Field1    nvarchar(max),     ...     Field100  nvarchar(max)    TableXML:     ID        bigint,     Code      char(10),     Field1    xml,     ...     Field100  xml    

MY TRIGGER: Only for Field1

  USE [MyDatabase]  GO  SET ANSI_NULLS ON  GO  SET QUOTED_IDENTIFIER ON  GO  ALTER TRIGGER [dbo].[UpdateXMLTable]     ON  [dbo].[TableJSON]     AFTER  INSERT, UPDATE  AS   BEGIN      DECLARE @ID bigint      DECLARE @Field1 nvarchar(max)      DECLARE @MyHierarchy Hierarchy,@Field1XML XML        SELECT  @ID = ID,              @Field1 = Field1      FROM INSERTED        INSERT INTO @myHierarchy      SELECT * FROM parseJSON(@Field1)      SELECT dbo.ToXML(@MyHierarchy)      SET @Field1XML = dbo.ToXML(@MyHierarchy)        IF NOT EXISTS(SELECT 1 FROM [dbo].[TableXML] WHERE ID = @ID)          INSERT INTO [dbo].[TableXML] (ID, Field1) VALUES (@ID, @Field1XML)      ELSE           IF (UPDATE (Field1))              UPDATE [dbo].[TableXML] SET Field1 = @Field1XML WHERE ID = @ID  END    

How can i convert ALL JSON fields [nvarchar(max)] from TableJSON to XML fileds in TableXML when TableJSON Update or Inserted.(TRIGGER)

No comments:

Post a Comment