2011-02-25 2 views
0

'aaa'및 'bbb'값이 포함 된 열 (이름을 모르는)이있는 모든 레코드는 SQL Server 데이터베이스에서 어떻게 찾을 수 있습니까? ?? 이 열에서이 값을 제거합니다. 컬럼 값만을 제거하지 마십시오.db의 값 찾기 및 삭제

답변

1

이 제한 사용에 대한 확인을 것입니다 ...

SELECT 'Starting' 
WHILE @@ROWCOUNT <> 0 
    UPDATE MyTable 
    SET 
     myValue1 = CASE 
        WHEN @columname = 'myValue1' 
        THEN REPLACE(REPLACE(myValue1, 'bbb', ''), 'aaa', '') 
        ELSE myValue1 
        END, 
     myValue2 = CASE 
        WHEN @columname = 'myValue2' 
        THEN REPLACE(REPLACE(myValue2, 'bbb', ''), 'aaa', '') 
        ELSE myValue2 
        END, 
     myValue3 = CASE 
        WHEN @columname = 'myValue3' 
        THEN REPLACE(REPLACE(myValue3, 'bbb', ''), 'aaa', '') 
        ELSE myValue3 
        END, 
     ... 
0

당신은 VARCHAR로 열 인수를 승인하고 동적 업데이트를 생성하는 T-SQL 블록 (또는 절차)를 작성해야 할 수도 있습니다 (또는 delete) sp_executesql을 통해 exuecte 할 SQL 문. 메타 데이터를 조회하고 커서에서 상기 테이블의 모든 열을 얻을 수있는 대안으로

sp_executesql('Update MyTable Set ' + @Your_column + ' = <the logic goes here>'); 

는, 당신은 커서를 통해 루프는 테이블을 정리 위의 문을 exuecte 수 있습니다.

Select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS Where TABLE_NAME='MyTable'; 

위의 경우 중 하나에서이 목적을 달성하려면 T-SQL 블록을 사용해야합니다.