0

我需要帮助将整个表更新为 0[零],其中值为 NULL。没有单独说明每一列。

4

1 回答 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)

请务必设置MyDatabaseMyTable相应地

于 2012-09-20T20:43:41.847 回答