【问题标题】:What is IDENTITY_INSERT and MERGE in SQL Server? [closed]SQL Server 中的 IDENTITY_INSERT 和 MERGE 是什么? [关闭]
【发布时间】:2012-01-17 08:58:37
【问题描述】:

谁能解释一下MERGE有什么用?

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

【问题讨论】:

  • 这是两个完全不同的问题,它们的答案很容易在 SQL Server 联机丛书中找到。 IDENTITY_INSERT, MERGE
  • 您没有展示任何研究成果...您只是将代码粘贴到此处,让其他人为您完全解决问题..这不是这里的工作方式...请参阅常见问题

标签: c# sql-server merge


【解决方案1】:
SET IDENTITY_INSERT Dev.dbo.ProductTypeGroup ON

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

MERGE 用于根据某些条件执行原子更新/插入/删除(否则您必须在检查前提条件时锁定事务中的行 - 在某些情况下可能会损害性能)

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

【讨论】:

  • 请注意任何找到此答案的人:问题是在我发布后编辑的;原来有更多代码,在提到的两个表之间进行完全合并。
猜你喜欢
  • 2012-06-28
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-06
  • 2012-07-12
相关资源
最近更新 更多