我想使用INFORMATION_SCHEMA.COLUMNS
来帮助我更快地为具有许多列的表构建存储过程。
例如,对于有 100 列的表的 MERGE 语句中的更新子句,我必须执行COLUMN_1 = SOURCE.COLUMN1, COLUMN2...
100 次,这并不令人愉快。
我知道我可以从对象浏览器编写 update/create/etc 语句,但我想多控制一些格式。所以:
此查询输出上面提到的每一列的更新格式:
select column_name + ' = SOURCE.' + column_name + ', '
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'TableName'
不幸的是,它会产生多个结果:
COLUMN_1 = SOURCE.COLUMN_1,
COLUMN_2 = SOURCE.COLUMN_2,
etc.
问题:
有人可以告诉我如何修改上面的查询以连接所有结果,使输出看起来更像:
COLUMN_1 = SOURCE.COLUMN_1, COLUMN_2 = SOURCE.COLUMN_2, etc.
PS:我知道如何使用游标循环并实现此结果。如果可能的话,我想找到一种方法在带有枢轴或某些 T-SQL 函数的查询中执行此操作。