[SQL] SQL 벌크 기록 업데이트
SQLSQL 벌크 기록 업데이트
나는 다음과 같은 구조의 SQL 서버 2008 환경에서 두 개의 테이블이
Table1
- ID
- DescriptionID
- Description
Table2
- ID
- Description
Table1.DescriptionID는 Table2.ID에 매핑됩니다. 그러나, 나는 더 이상 필요하지 않습니다. 나는 표 2에 그와 관련된 값으로 표 1의 설명 속성을 설정하는 대량 업데이트를 수행하고 싶습니다. 즉 나는 이런 일을하고 싶지 :
UPDATE
[Table1]
SET
[Description]=(SELECT [Description] FROM [Table2] t2 WHERE t2.[ID]=Table1.DescriptionID)
이것은 적절한 접근 방법이다 그러나, 나는 확실하지 않다. 사람이 어떻게 이렇게하는 저를 게재 할 수 있습니까?
해결법
-
==============================
1.귀하의 방법이 올바른지, 그리고 여기 당신이 그것을 할 수있는 또 다른 방법입니다 :
귀하의 방법이 올바른지, 그리고 여기 당신이 그것을 할 수있는 또 다른 방법입니다 :
update Table1 set Description = t2.Description from Table1 t1 inner join Table2 t2 on t1.DescriptionID = t2.ID
중첩 된 선택은 조인을 수행하는 긴 방법입니다.
-
==============================
2.당신의 접근 방식은 OK입니다
당신의 접근 방식은 OK입니다
어쩌면 약간 선명 (나에게 어쨌든!)
UPDATE T1 SET [Description] = t2.[Description] FROM Table1 T1 JOIN [Table2] t2 ON t2.[ID] = t1.DescriptionID
그냥 다르게 배치 동일한 쿼리이기 때문에 모두이 당신의 쿼리는 현명한 동일한 성능을 실행해야합니다.
-
==============================
3.당신은이 가입과 정기적 업데이트를 통해이 작업을 수행 할 수 있습니다
당신은이 가입과 정기적 업데이트를 통해이 작업을 수행 할 수 있습니다
UPDATE T1 SET Description = T2.Description FROM Table1 T1 JOIN Table2 T2 ON T2.ID = T1.DescriptionId
-
==============================
4.또는 당신은 단순히 같은 조인을 사용하지 않고 업데이트 할 수 있습니다 :
또는 당신은 단순히 같은 조인을 사용하지 않고 업데이트 할 수 있습니다 :
Update t1 set t1.Description = t2.Description from @tbl2 t2,tbl1 t1 where t1.ID= t2.ID
-
==============================
5.당신이 당신의 질문에 게시 된 SQL은 그것을 할 수있는 하나의 방법이다. SQL에서 대부분의 일들을 할 수있는 하나 개 이상의 방법이있다.
당신이 당신의 질문에 게시 된 SQL은 그것을 할 수있는 하나의 방법이다. SQL에서 대부분의 일들을 할 수있는 하나 개 이상의 방법이있다.
UPDATE [Table1] SET [Description]=(SELECT [Description] FROM [Table2] t2 WHERE t2.[ID]=Table1.DescriptionID)
당신이 PROD DB에서이를 실행에 계획하는 경우, 스냅 샷 또는 미러 그것의 첫번째 밖으로 테스트를 작성하는 것이 가장 좋습니다. 당신은 몇 가지 기록에 대한 예상대로 최대 데이터 끝을 확인합니다. 당신이 만족하는 경우에, 실제 DB에서 실행합니다.
from https://stackoverflow.com/questions/6629088/bulk-record-update-with-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 오라클 SQL에 대한 파서 (0) | 2020.06.27 |
---|---|
[SQL] 바이트 배열에서 파일 확장자를 추출하는 방법 (0) | 2020.06.27 |
[SQL] SQL LIKE %의 내부 어레이 (0) | 2020.06.27 |
[SQL] SQL의 성능은 사용 변종을 "EXISTS" (0) | 2020.06.27 |
[SQL] DB2 데이터베이스에 여러 행을 삽입 (0) | 2020.06.27 |