我需要帮助将整个表更新为 0[零],其中值为 NULL。没有单独说明每一列。
问问题
222 次
1 回答
1
可以这样做,您只需首先从 INFORMATION_SCHEMA 或其他地方提取所有列名,将 SQL 构建为字符串,然后执行它:
USE MyDatabase
DECLARE @TableName NVARCHAR(100)
SELECT @TableName = 'MyTable'
DECLARE @Sql NVARCHAR(4000)
SELECT @Sql = COALESCE(@Sql + '; ', '')
+ 'UPDATE dbo.'
+ @TableName
+ ' SET '
+ COLUMN_NAME
+ ' = 0 WHERE '
+ COLUMN_NAME
+ ' IS NULL'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName
AND IS_NULLABLE = 'YES'
AND DATA_TYPE NOT IN ('text','ntext','image')
SELECT @Sql
EXEC(@Sql)
请务必设置MyDatabase
并MyTable
相应地
于 2012-09-20T20:43:41.847 回答