如何动态修剪超过 300 列的大表。当我尝试使用此代码时出现错误,因为变量@sql 是 nvarchar(max) 并且我有 300 列,所以当我运行此查询时所有列名都没有出现,任何人都可以帮助我吗?
DECLARE @SQL nVARCHAR(MAX)
DECLARE @TableName NVARCHAR(128)
SET @TableName = 'MYTAbleName'
SELECT @SQL = COALESCE(@SQL + ',[', '[') +
COLUMN_NAME + ']=LTRIM(RTRIM([' + COLUMN_NAME + ']))'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName
SET @SQL = 'UPDATE [' + @TableName + '] SET ' + @SQL
PRINT @SQL
EXECUTE @SQL