2015-05-29 25 views
1

我不知道这是怎么发生的,但我的一个表有一个PRIMARY KEY约束,名称为NULL。我发现它是因为我必须删除/重新创建表,当我尝试添加PRIMARY KEY时,系统响应已存在该约束。SQL Server 2012:约束名称为NULL。我怎样才能放弃这个?

我执行以下操作:

SELECT i.object_id, i.name, i.type_desc 
FROM sys.indexes i 
INNER JOIN sys.tables t ON i.object_id = t.object_id 
AND t.name = N'Organization' 

,其结果是:

 
object_id name         type_desc 
1570377655 NULL         HEAP 
1570377655 IX_Organization_OwnedByOrganizationId NONCLUSTERED 

我试图删除和重建表好几次,每次指数是存在的。我怎样才能放弃约束?

+3

'NULL'不是一个约束。该行只是表示该表是堆(无聚簇索引)。 RE:“系统回应说约束已经存在。”这可能是与您尝试使用的名称相同的另一个表上的一个约束。将表格脚本化并向我们展示您正在尝试运行的脚本以及确切的错误消息。 –

回答

0

你可以尝试找到你正在尝试使用下面的查询添加索引:

SELECT [Table] = t.[name] 
    , [Index] = i.[name] 
    , i.* 
FROM sys.indexes i 
INNER JOIN sys.tables t 
    ON t.[object_id] = i.[object_id] 

马丁有正确的答案,你的索引与NULL名称查找。