R.D*_*R.D 2 sql sql-server sql-server-2008
假设表1有1,000,000行.在表2中有50,000行
INPUT
表格1
Id User InternetAmountDue
1 joe NULL
Run Code Online (Sandbox Code Playgroud)
表2
InternetUserId UserName AmountDue
21 kay 21.00
10091 joe 21.00
Run Code Online (Sandbox Code Playgroud)
我想将表2中的数据合并到表1,如下所示:
OUTPUT
表格1
Id User InternetAmountDue
1 joe 21.00
2 kay 21.00
Run Code Online (Sandbox Code Playgroud)
如果涉及大量数据,如何快速完成?
SQL Server 2008MERGE为您的情况提供特殊构造:
MERGE
INTO table1 AS t1
USING table2 AS t2
ON t2.UserName = t1.user
WHEN MATCHED THEN
UPDATE
SET t1.AmountDue = t2.AmountDue
WHEN NOT MATCHED THEN
INSERT (user, InternetAmountDue)
VALUES (t2.UserName, t2.AmountDue)
Run Code Online (Sandbox Code Playgroud)