代码之家  ›  专栏  ›  技术社区  ›  Etienne

唯一的非聚集索引-插入重复值

  •  0
  • Etienne  · 技术社区  · 5 年前

    我的azure数据库中有一个唯一的非聚集索引,代码如下…

    CREATE UNIQUE NONCLUSTERED INDEX [IX] ON [dbo].[TableName]
    (
        [Username] ASC,
        [GUID] ASC
    )WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]
    

    由于某些原因,username和guid的表中有重复的值。 如果这个索引存在怎么可能呢?

    可以先关闭然后再打开以添加具有相同用户名和guid的新记录吗?

    正在获取以下错误…

    无法在对象中插入重复的键行 具有唯一索引的“dbo.tablename”

    1 回复  |  直到 5 年前
        1
  •  0
  •   CJBS    5 年前

    当使用 UNIQUE 使用 ALTER TABLE NOCHECK 命令。可以执行违反约束的插入,然后可以稍后重新启用约束,使重复记录保持完整。

    例如

    USE AdventureWorks2012;  
    GO  
    ALTER TABLE Purchasing.PurchaseOrderHeader  
    NOCHECK CONSTRAINT FK_PurchaseOrderHeader_Employee_EmployeeID;  
    GO  
    

    ( Reference link )

    ALTER TABLE [MyTable] NOCHECK CONSTRAINT ALL
    

    相关: How can foreign key constraints be temporarily disabled using T-SQL?