2012-09-20 1 views
0

전체 테이블을 0 [0]으로 업데이트하는 데 도움이 필요합니다. 여기서 값은 NULL입니다. 각 열을 별도로 표시하지 않습니다.전체 테이블 업데이트 NULL 값 [각 열 표시 별도]

+4

할 수 없습니다. SQL UPDATE 문을 사용하기 위해서는 ** NULL 대신에'0'으로 설정할 열을 명시 적으로 정의해야합니다 ** –

+2

무엇을 검색 했습니까? http://stackoverflow.com/questions/9705369/is-there-a-quick-way-to-check-if-any-column-is-null – HABO

+0

Larry Wall에 사과드립니다. 그러나이 경우에는하지 마십시오. 게으른. 그냥 열을 철자하고 그것을 완료하십시오. –

답변

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을 설정해야합니다