无法使用FULLTEXT索引删除表上的主键

时间:2014-08-28 20:08:25

标签: sql-server alter-table

我有一个主键是int数据类型的表。我想删除此列(因为它未使用,我担心此列可能会达到int数据类型的最大限制,因此我们也可以删除它。)。

首先,我无法放弃我试图首先删除约束:

ALTER TABLE dbo.MyTable DROP CONSTRAINT PK_MyTableID

我收到错误:

Cannot drop index 'PK_MyTableID' because it enforces the full-text key for table or indexed view 'MyTable'. 

我不明白这个错误,因为主键是int,我不认为这个表有FULLTEXT索引,但如果确实如此,我就不会这样做。需要它。

编辑:

删除FULLTEXT索引后,我能够删除列:

DROP FULLTEXT INDEX ON dbo.MyTable

1 个答案:

答案 0 :(得分:4)

我相信桌子上有一个全文索引。全文索引要求您具有唯一键:

来自MSDN:KEY INDEX index_name 是table_name上唯一键索引的名称。 KEY INDEX必须是唯一的,单键,不可为空的列。选择全文唯一键的最小唯一键索引。为获得最佳性能,我们建议使用全文密钥的整数数据类型。

您可以使用以下方法检查表格全文索引:

SELECT object_id, property_list_id, stoplist_id FROM sys.fulltext_indexes
    where object_id = object_id('myTable');