2012-09-20 36 views
0

我需要幫助將整個表更新爲0 [零],其中值爲NULL。 沒有指示每列分開。更新整個表,其中值爲NULL [無需單獨指示每個列]

+4

這是不能做到的。爲了使用SQL UPDATE語句,你必須明確定義哪些列設置爲0而不是NULL。 –

+2

你在搜索什麼? http://stackoverflow.com/questions/9705369/is-there-a-quick-way-to-check-if-any-column-is-null – HABO

+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) 

一定要設置MyDatabaseMyTable相應

相關問題