繁体   English   中英

SQL-连接任何表中的所有列

[英]SQL - Concatenate all columns from any table

我正在使用触发器来审核表更改。 现在,我捕获以下各列的变化:

DECLARE @statement VARCHAR(MAX)
SELECT @statement =
'Col1: ' + CAST(ISNULL(Col1, '') AS VARCHAR) + ', Col2: ' + CAST(ISNULL(Col2, '') AS VARCHAR) + ', Col3: ' + CAST(ISNULL(Col3, '') AS VARCHAR)
FROM INSERTED;

问题是,我需要调整要审核的每个表/触发器的列名。 有没有一种方法可以使用更通用的方法独立于表来构建@statement?

为大卫欢呼

您需要做的是使用以下查询构建一个内存表,然后循环遍历该表以生成所需的SQL语句

从information_schema.columns中选择column_name,其中table_name之类的'tName'按ordinal_position排序

但是我不确定这是否适合审核。 以后如何将其撤回。 说在您的一个发行版中,您碰巧放下了专栏,那会发生什么? 您如何知道哪一列保存哪些数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM