什么是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
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)。