두 개의 테이블이 있습니다. 첫 번째 테이블의 레코드를 기반으로 두 번째 테이블을 삽입하거나 업데이트해야하며 INVE_KEY
, EVEN_KEY
(둘 모두의 조합이 고유해야 함)입니다.첫 번째 테이블의 행을 기반으로 두 번째 테이블의 행을 삽입 또는 업데이트하십시오.
첫 번째 테이블 = @
번째 테이블 = @ 1 실시 예
TBL2 TBL1 : 초 표 alredy INVE_KEY = 1을 갖는다경우 EVEN_KEY = 2, 제 테이블 INVE_KEY을 갖는다 = 1, EVEN_KEY = 2,이 행은 두 번째 테이블 (열 QUA)에서만 업데이트됩니다.
예 2 : 두번째 테이블 INVE_KEY없는
경우 = 3 EVEN_KEY = 1,이 행 제 표의 두 번째 테이블에 삽입한다.
내 문제는 내가 테이블에서 테이블로 삽입하는 방법을 모르고 동시에 각 레코드가 두 번째 테이블에 있는지 확인하는 것입니다.
첫 번째 테이블 :
+----------+----------+-----+
| INVE_KEY | EVEN_KEY | QUA |
+----------+----------+-----+
| 1 | 1 | 3 |
| 2 | 1 | 4 |
| 3 | 1 | 5 |
| 4 | 1 | 6 |
+----------+----------+-----+
번째 테이블 :
+----------+----------+-----+
| INVE_KEY | EVEN_KEY | QUA |
+----------+----------+-----+
| 3 | 1 | 0 |
| 4 | 1 | 0 |
+----------+----------+-----+
초 테이블을 업데이트하는 예상 결과 후 : 두 테이블
+----------+----------+-----+
| INVE_KEY | EVEN_KEY | QUA |
+----------+----------+-----+
| 1 | 1 | 3 |(inserted)
| 2 | 1 | 4 |(inserted)
| 3 | 1 | 5 |(updated QUA)
| 4 | 1 | 6 |(updated QUA)
+----------+----------+-----+
작성 및 데이터 :
declare @tbl1 table
(
INVE_KEY INT,
EVEN_KEY INT,
QUA INT
)
declare @tbl2 table
(
INVE_KEY INT,
EVEN_KEY INT,
QUA INT
)
insert into @tbl1(inve_Key, even_Key, qua)
values(1, 1, 3),(2,1,4),(3,1,5),(4,1,6)
insert into @tbl2(inve_Key, even_Key, qua)
values(3,1,0),(4,1,0)
2 문에 작업을 수행하려고주십시오. 먼저 기존 레코드를 업데이트하십시오 (UPDATE FROM 구문에 대해 Google에 알려주십시오). 두 번째 - 누락 된 레코드 삽입 –
두 번째 테이블을 먼저 자른 다음 첫 번째 테이블의 예상 결과를 전체 테이블에 채우는 것이 어떨까요? –
머지 (MERGE) 보셨습니까? https://docs.microsoft.com/en-us/sql/t-sql/statements/merge-transact-sql –