如何在启用全文搜索时更改表格?

时间:2012-03-26 11:19:27

标签: sql-server alter sql-types

我有地址表,其中city字段有nvarchar数据类型,但我想将数据类型nvarchar更改为varchar。为此我写了剧本

ALTER TABLE Address ALTER COLUMN City varchar(50) null

但是当我执行此操作时,我收到了错误消息:

  

Msg 7614,Level 16,State 1,Line 1无法更改或删除列'City'   因为它已启用全文搜索。

那我怎么解决这个错误呢? 我对全文搜索一无所知。

2 个答案:

答案 0 :(得分:2)

您可能在表上有一个全文索引,并且不允许您使用该索引更改列。

所以你可以尝试:

DROP FULLTEXT INDEX ON Address

然后尝试:

ALTER TABLE Address ALTER COLUMN City varchar(50) null

然后你必须看看索引包含什么并重新创建它

答案 1 :(得分:2)

在删除全文索引之前先检查全文索引的内容会更明智。

另外,您最好使用以下代码:

ALTER FULLTEXT INDEX ON tableName  DROP (ColumnName)

这将仅删除该列的全文索引。