Activador de auditoría de tabla de SQL Server

Tengo dos mesasCustomers yAuditTable. Cuando modifico elCustomers tabla, necesito insertar un nuevo registro en elAuditTable:

CREATE TABLE [dbo].[AuditTable]
(
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [StateBefore] [nvarchar](max) NULL,
    [StateAfter] [nvarchar](max) NULL
) 

Necesito colocar una representación XML deCustomer Estado enStateBefore yStateAfter, antes y después de la actualización.

losCustomer tabla es:

CREATE TABLE [dbo].[Customer]
(
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](256) NOT NULL,
    [Email] [nvarchar](max) NOT NULL,
    [IsDeleted] [bit] NULL,
    [CreatedUtc] [datetime] NOT NULL,
    [UpdatedUtc] [datetime] NULL,
    [Version] [timestamp] NOT NULL,

    CONSTRAINT [PK_dbo.Customer] 
        PRIMARY KEY CLUSTERED ([Id] ASC)
           WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, 
                 IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,  
                 ALLOW_PAGE_LOCKS = ON)
)
GO

ALTER TABLE [dbo].[Customer] 
   ADD DEFAULT (getutcdate()) FOR [CreatedUtc]
GO

Encontré la forma de obtener una representación xml de filas:

SELECT
    [State] = (SELECT *
               FROM dbo.Customer [Customer]
               WHERE [Customer].Id = cust.Id
               FOR XML AUTO
              )
FROM 
    dbo.Customer cust

Es solo por ejemplo. Entonces, en mi disparador, necesito crear la representación xml de filas desdedeleted yinserted mesas.

Aquí está el desencadenante:

ALTER TRIGGER [dbo].[UpdateCustomerTrigger]
ON [dbo].[Customer]
FOR UPDATE
AS 
BEGIN
    UPDATE Customer 
    SET UpdatedUtc = GETDATE()
    FROM INSERTED
    WHERE inserted.id = Customer.Id

    -- here I need to insert new records into AuditTable
END

Entonces, ¿cómo puedo unir dos representaciones dedeleted yinserted tablas para insertarlas correctamente en elAuditTable? Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta