操作失败,因为名称为' X'的索引或统计信息已经存在于桌面上' Y'

时间:2018-06-18 14:03:54

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

我是SQL新手,我有一个SQL文件,当我执行它时会发生以下错误:

  

Ms 1913,Level 16,State 1,Line 463
  由于名称为“DDT_PK”的索引或统计信息,操作失败。已存在于表格' DAILY_DATA_TYPE'。

运行此语句时发生错误:

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。

1 个答案:

答案 0 :(得分:2)

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

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