什么是IDENTITY_INSERT和MERGE在SQL Server

本文关键字:MERGE SQL Server INSERT IDENTITY 什么 | 更新日期: 2023-09-27 18:17:21

谁来给我解释一下MERGE有什么用?

MERGE Dev.dbo.ProductTypeGroup AS target
USING (
        SELECT * FROM Staging.dbo.ProductTypeGroup
    ) AS src
    ON 
        target.ProductTypeGroupId = src.ProductTypeGroupId

什么是IDENTITY_INSERT和MERGE在SQL Server

SET IDENTITY_INSERT Dev.dbo.ProductTypeGroup ON

这意味着您允许在标识列中插入值,而不是依赖SQL Server为您提供标识值。

MERGE用于根据某些条件执行原子UPDATE/INSERT/DELETE操作(否则,在检查先决条件时,您将不得不锁定事务中的行——这在某些情况下可能会损害性能)

您发布的全部语句是将数据库Staging上的表ProductTypeGroup中的所有行转移到数据库Dev中的同一表。运行此SQL后,Dev.dbo.ProductTypeGroup将包含与Staging.dbo.ProductTypeGroup完全相同的内容,包括标识值(因此需要将IDENTITY_INSERT设置为on)。