我有一个只包含varchar列的表。每个字段都有相同的模式'“xxxxx”',我想清理/修剪每个字段的前导和尾随。
我知道如何为单个列执行此操作,但我希望以动态方式对所有列执行此操作(使用列名的动态集)
由于
答案 0 :(得分:1)
这是一种可以做到这一点的方法。无论你是否需要切片,都需要一些动态的sql,因为你必须动态获取列名。
declare @SQL nvarchar(max)
select @SQL = 'Update YourTable set ' + STUFF((select ', replace(' + QUOTENAME(c2.name) + ', ''"'', '''')'
from sys.columns c2
where object_id = object_id('YourTable')
order by c2.column_id
for xml path('')), 1, 1, '')
from sys.columns
where object_id = object_id('YourTable')
group by object_id
select @SQL
--exec sp_executesql @SQL --You can uncomment this when you comfortable with the output