SQL Server Merge语句的用法和示例说明

分类:知识百科 日期: 点击:0

SQL Server Merge语句的用法

SQL Server Merge语句是SQL Server数据库提供的一种数据库操作语句,它可以将两个表中的数据合并到一起,从而实现数据的更新、插入和删除操作。Merge语句的语法格式如下:

MERGE [TargetTable]
USING [SourceTable]
ON [JoinCondition]
WHEN MATCHED THEN
    [UPDATE Clause]
WHEN NOT MATCHED THEN
    [INSERT Clause]
WHEN NOT MATCHED BY SOURCE THEN
    [DELETE Clause];

其中,[TargetTable]表示要更新的目标表,[SourceTable]表示要更新的源表,[JoinCondition]表示源表和目标表的连接条件,[UPDATE Clause]表示当源表和目标表的连接条件匹配时要执行的更新操作,[INSERT Clause]表示当源表和目标表的连接条件不匹配时要执行的插入操作,[DELETE Clause]表示当源表中有,而目标表中没有的数据时要执行的删除操作。

SQL Server Merge语句的示例

下面举例说明如何使用Merge语句。假设有两个表,一个是员工信息表EmployeeInfo,另一个是员工薪资表EmployeeSalary,要求实现将EmployeeSalary表中的数据更新到EmployeeInfo表中。

-- 创建员工信息表EmployeeInfo
CREATE TABLE EmployeeInfo(
    ID INT PRIMARY KEY,
    Name VARCHAR(20) NOT NULL,
    Salary INT
);

-- 创建员工薪资表EmployeeSalary
CREATE TABLE EmployeeSalary(
    ID INT PRIMARY KEY,
    Salary INT
);

-- 向EmployeeInfo表插入数据
INSERT INTO EmployeeInfo(ID, Name, Salary)
VALUES(1, 'Tom', 1000), (2, 'Jerry', 2000);

-- 向EmployeeSalary表插入数据
INSERT INTO EmployeeSalary(ID, Salary)
VALUES(1, 1500), (2, 2500);

-- 使用Merge语句更新EmployeeInfo表
MERGE EmployeeInfo AS T
USING EmployeeSalary AS S
ON T.ID = S.ID
WHEN MATCHED THEN
    UPDATE SET T.Salary = S.Salary
WHEN NOT MATCHED THEN
    INSERT (ID, Name, Salary)
    VALUES(S.ID, '', S.Salary);

-- 查询EmployeeInfo表
SELECT * FROM EmployeeInfo;

上面的代码执行后,EmployeeInfo表中的数据如下:

  • ID:1,Name:Tom,Salary:1500
  • ID:2,Name:Jerry,Salary:2500

可以看到,使用Merge语句可以很方便地将两个表中的数据合并到一起,从而实现数据的更新、插入和删除操作。

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。