我需要帮助将整个表更新为0 [零],其中值为NULL。 没有单独指示每一列。
答案 0 :(得分: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