2012-03-27 3 views
0

테이블에 100 개의 열이 있고 NULL 값을 가진 열만 업데이트하려고합니다.SQL Server 2008 : 해당 열이 NULL 인 경우 업데이트

임시 테이블과 마스터 테이블 열을 비교하고 임시 테이블 열 값으로 마스터 테이블 열 값을 업데이트하려고합니다.

이 점에 대해 도움을주십시오. 사전에

감사와 같은

+1

샘플 테이블과 원하는 출력 –

답변

0
UPDATE B SET B.value = T.value 
FROM 
tblMaster B 
    INNER JOIN tblTemp T ON B.ID = T.ID 
WHERE B.value IS NULL 
+0

첨부 ('{}') 편집기 툴바에서 멋지게 포맷하고 구문을 강조 표시하십시오! –

+0

빠른 응답을 보내 주셔서 감사합니다 ... 도움이 되었기를 바랍니다 ... – UnKnown

2

뭔가 :

Update t1 
set field1 = coalesce(t1.field1, 'test') 
    , field2 = coalesce(t1.field2, t1.field1) 
    , field3 = coalesce(t1.field3, t2.field1) 
    , field4 = coalesce(t1.field4, t2.field1, t2.field3) 

FROM table1 t1 
join table2 t2 
on t1.someid = t2.someId 

나는 당신에게 필드가 null의 경우 업데이트 할 수 있습니다 differnt 한 방법의 세 가지 예를 주었다. 첫 번째 방법은 텍스트 값으로 설정하는 방법을 보여주고, 두 번째 방법은 같은 테이블의 다른 필드에 설정하는 방법이고 세 번째는 다른 테이블에서 값을 가져 오는 방법입니다. 네 번째 값은 설정하려는 값이 nul이기 때문에 그 자리에서 또 다른 값을 사용하려는 경우 수행 할 작업을 보여줍니다. 100 개의 각 열에 대해 통합 업데이트를 작성해야합니다.

+0

빠른 응답을 보내 주셔서 감사합니다 ... 도움이 되었기를 바랍니다 ... – UnKnown

0

다음은 이전 값 (null이 아닐 경우) 또는 마스터 테이블의 값이 null 인 경우 임시 테이블의 값으로 마스터 테이블의 행을 업데이트해야합니다.

내 경우에는 마스터 테이블과 임시 테이블을 Key 키 필드에 조인 할 수 있어야합니다. 당신이 ** ** 텍스트 편집기에서 그 라인을 선택하고 버튼을 "코드 샘플"를 클릭하십시오, 코드, XML 또는 데이터 샘플을 게시 할 경우

UPDATE m 
SET 
    m.field1 = ISNULL(m.field1, t.field1), 
    ... 
FROM 
    MasterTable m 
    INNER JOIN TempTable t ON t.Key = m.Key 
+0

빠른 응답을 보내 주셔서 감사합니다 ... 이게 도움이 되길 바란다... – UnKnown

관련 문제