我有一个主键是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
答案 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');