Sql 如何将所有表数据转换为nvarchar?

Sql 如何将所有表数据转换为nvarchar?,sql,sql-server,Sql,Sql Server,每当我的表发生任何CRUD操作时,我都会触发记录数据。 例如: ALTER TRIGGER [Data_Created] ON [Project_MyTable1] AFTER INSERT AS INSERT INTO [Project_Logs] (Operation, LogData) SELECT 'INSERT', ID FROM INSERTED 它工作得很好,但是我的表中有很多列,我希望在日志数据列中看到这些列。我正在努力寻找任何方法来提取

每当我的表发生任何CRUD操作时,我都会触发记录数据。 例如:

ALTER TRIGGER [Data_Created]
ON [Project_MyTable1]
AFTER INSERT
AS
    INSERT INTO [Project_Logs] (Operation, LogData)
        SELECT 'INSERT', ID
        FROM INSERTED
它工作得很好,但是我的表中有很多列,我希望在日志数据列中看到这些列。我正在努力寻找任何方法来提取所有行数据,并将其转换为
nvarchar
xml
(?可能),除非通过串联

已经尝试了很多东西,比如:

Convert(nvarchar, (Select * FROM INSERTED))
基于

--转换语法:转换(数据类型[(长度)],表达式[,样式])


这听起来像是个XY问题。如果要保留历史记录,请使用历史记录表(在生产表中或作为单独的实体)或时态表。不要将一次插入的所有数据透视到“日志”表中。您会发现它无法管理。您还应该在审核日志中看到SQL server的“更改数据捕获”(CDC)功能。如果数据不是
NVARCHAR
为什么要以该格式存储?您不希望实际数据与记录的数据有任何不同。此外,您记录的数据大小增加了一倍。找到了我问题的答案。谢谢