【问题标题】:The operation failed because an index or statistics with name 'X' already exists on table 'Y' [duplicate]操作失败,因为表“Y”上已存在名为“X”的索引或统计信息[重复]
【发布时间】:2018-11-27 09:45:36
【问题描述】:

我是 SQL 新手,我有一个 SQL 文件,执行时出现以下错误:

消息 1913,第 16 级,状态 1,第 463 行
操作失败,因为表 'DAILY_DATA_TYPE' 上已存在名为 'DDT_PK' 的索引或统计信息。

运行此语句时出现错误:

CREATE UNIQUE NONCLUSTERED INDEX DDT_PK 
    ON [DATE_DATA_TYPE]([TYPE_ID])
GO

ALTER TABLE [DATE_DATA_TYPE] 
    ADD CONSTRAINT [DDT_PK] PRIMARY KEY ([TYPE_ID])
GO

我知道它已经存在,但我想添加一个约束而不是再次创建索引,所以我做错了什么?

也许你也必须知道表是如何创建的,所以这里是声明:

CREATE TABLE [DATE_DATA_TYPE] ([TYPE_ID] [numeric](18, 0) NOT NULL,
[TYPE_NAME] [varchar](400) NOT NULL, [UNIT] [varchar](32) NOT NULL,
[CHART_TYPE] [varchar](32) NOT NULL, [RES_ID] [numeric](18, 0) NOT NULL)
GO

我正在使用 Microsoft SQL Server Management Studio。

【问题讨论】:

  • 看起来很清晰;使用不同的名称。
  • 您的表格与索引脚本中的表格不匹配
  • 您在[DATE_DATA_TYPE] 上收到错误,但是您给我们的表格是[DAILY_DATA_TYPE]
  • 抱歉,我现在改了

标签: sql sql-server database constraints primary-key


【解决方案1】:

主键自动成为INDEX。如果要创建NONCLUSTERED 主键,请使用:

ALTER TABLE [DATE_DATA_TYPE]
ADD CONSTRAINT [DDT_PK] PRIMARY KEY NONCLUSTERED ([TYPE_ID]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 2014-02-26
    • 1970-01-01
    相关资源
    最近更新 更多