SQL Server全文索引



我有一个表,上面创建了全文索引。

CREATE TABLE dbo._mytable
(
ID INT CONSTRAINT Pk_mytable PRIMARY KEY CLUSTERED,
Name NVARCHAR(50)
)
GO
CREATE FULLTEXT CATALOG ft AS DEFAULT
GO  
CREATE FULLTEXT INDEX ON dbo._mytable(Name)   
KEY INDEX Pk_mytable   
GO

以下查询成功运行

SELECT t.Name AS t_name
FROM dbo._mytable t
WHERE CONTAINS(t.Name, '"mu*"')

但这一次失败了

SELECT *
FROM 
(SELECT t.Name AS t_name
FROM dbo._mytable t) T
WHERE CONTAINS(T.t_name, '"mu*"')

错误:

Msg 7601,级别16,状态3,第7行
无法在列"t_name"上使用CONTAINS或FREETEXT谓词,因为它不是全文索引

第二个消除了一个错误,因为您不是从具有全文索引的表中选择,而是从派生表中选择。引擎无法将全文搜索从外部选择移动到内部选择。

最新更新