복붙노트

[SQL] 모든 열이 NULL이 있는지 확인하는 빠른 방법이 있나요?

SQL

모든 열이 NULL이 있는지 확인하는 빠른 방법이 있나요?

나는 약 20 열이있는 테이블이 있습니다. 이외에도 외부 입력에서 :

Where column1 is null OR column2 is null OR column3 is null etc...

단지 모든 열을 확인하고 값이 null인지 확인하고 만약 그렇다면, 그 기록을 반환하는 빠른 방법이 있나요?

해결법

  1. ==============================

    1.아뇨 빠른 코드 가지 방법이 있습니다,하지만 당신은 의미처럼 지름길은 없다. 내가 dba.stackexchange에 준 대답에서 발췌 :

    아뇨 빠른 코드 가지 방법이 있습니다,하지만 당신은 의미처럼 지름길은 없다. 내가 dba.stackexchange에 준 대답에서 발췌 :

    DECLARE @tb NVARCHAR(255), @sql NVARCHAR(MAX);
    
    SET @tb = N'dbo.[table]';
    
    SET @sql = N'SELECT * FROM ' + @tb + ' WHERE 1 = 0';
    
    SELECT @sql = @sql + N' OR ' + QUOTENAME(name) + ' IS NULL'
        FROM sys.columns 
        WHERE [object_id] = OBJECT_ID(@tb);
    
    EXEC sp_executesql @sql;
    
  2. ==============================

    2.이 같은 것을 사용하여 열 이름을 찾을 수 있습니다 :

    이 같은 것을 사용하여 열 이름을 찾을 수 있습니다 :

    SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = <table_name> 
    

    그런 다음,이를 사용하여 프로 시저를 작성하고 테이블의 항목과 열 이름을 통해 그 것 루프 것입니다.

    출처 : http://codesnippets.joyent.com/posts/show/337

  3. ==============================

    3.즉 어떤 빠른 방법에 따라 달라집니다.

    즉 어떤 빠른 방법에 따라 달라집니다.

    당신은 SQL Server를 실행하는 빠른 말은, 당신이 할 수있는 한 가지 업데이트보다 트리거를 지정하는 전체 행 (비트 및 기본 키 이외의) NULL 경우하는 비트 열을 쓰기입니다. 그러나, 그것은 당신의 업데이트 성능에 영향을줍니다 이에 대한 진짜 이유가 있어야한다. 그 컬럼의 인덱스가 아니라 도움이 될 것이다.

    당신이 빨리 쓰기를 의미하는 경우, 당신은 SQL 당신을 위해 where 절을 생성있을 수 있습니다. 이을 많이하지 않는 한, 그것은 내 의견의 시간 가치가되지 않습니다.

  4. ==============================

    4.교육 - 투 - 물고기 - 대신 -의 - - 당신 - 더 - 물고기주고 여기에 해답의 종류 :

    교육 - 투 - 물고기 - 대신 -의 - - 당신 - 더 - 물고기주고 여기에 해답의 종류 :

    그 일을하는 한 가지 방법은 조립 및 실행 동적 쿼리 저장 프로 시저를 만드는 것입니다.

    저장 프로 시저의 뜻 :

  5. from https://stackoverflow.com/questions/9705369/is-there-a-quick-way-to-check-if-any-column-is-null by cc-by-sa and MIT license