【发布时间】:2016-04-24 05:38:56
【问题描述】:
我正在尝试提高查询性能,并且与使用 LIKE 相比,我一直在研究应用 FULLTEXT INDEX。
我有一个包含个人信息的数据库,即 FirstName、LastName 等,其中一些列为空。
当我尝试使用 CONTAINS 对象时,我收到此错误消息;
Null or empty full-text predicate
我已经输入了代码来确保传入的@FirstName 字段不为空,如果传入了空值,那么我将其设置为'""',就像我在其他地方读到的那样。我仍然收到错误消息。我开始怀疑这是否是一个问题,因为索引的列是空的。
有人知道是不是这样吗,我到处找了,找不到任何信息。
这里是查询。 @FirstNameLocal 和@LastNameLocal 被传递到这个存储过程中。在此示例中,PersonTable 中的 FirstName 和/或 LastName 字段数据可能为空。我正在使用带有 SP1 的 SQL Server 2012。 “尝试使用”是指当我尝试在 SQL Management Studio 中运行查询时。
SELECT DISTINCT LastName, FirstName, MiddleName, PersonId
FROM PersonTable
Where IsDeleted = 0
AND CONTAINS(FirstName, @FirstNameLocal)
AND CONTAINS(LastName, @LastNameLocal)
【问题讨论】:
-
向我们展示您当前的查询
-
还请:“尝试使用”是什么意思?编译?跑步?给我们您的 SQL Server 版本和表定义。如果适用,示例输入和输出以及所需的输出。了解 MVCE。
-
我的回答对您有帮助吗?我没有看到赞成或接受我的答案...只是想知道。
标签: sql sql-server