2017-01-05 104 views
-1

我在我想要搜索的SQL数据库中有一个表。我已确保全文搜索已打开。我建立了一个目录和一个索引。我使用下面的代码与下面的错误:SQL搜索存储过程

CREATE PROCEDURE [dbo].[SearchByKeyword] 
    @Keyword AS VARCHAR(255) = 'Analyst' 

AS 
BEGIN 
    SET NOCOUNT ON; 

DECLARE @InternalKeyword VARCHAR(300) 

SET @InternalKeyword = '"' + @Keyword + '"' 

SELECT DISTINCT [dbo].[sbir_export].[sbirID], [dbo].[sbir_export].[TopicName] 
From [dbo].[sbir_export] 
WHERE 
    CONTAINS([Description], @InternalKeyword); 
END 

错误SQL80001:附近有语法错误 '' C:\用户\ SearchByKeyword.sql ''。杂项 文件SQLQuery1.sql 3

错误SQL72045:脚本执行错误。执行的脚本:CREATE FULLTEXT CATALOG [sbirFullTextCatalog] AUTHORIZATION [dbo]; sbirDec2016 C:\用户\ BIN \调试\ sbirDec2016.sql

错误SQL72014:.net SqlClient数据提供:消息9982,级别16, 状态100,第1行无法在用户 使用全文搜索实例。 sbirDec2016 C:\用户\ C \ BIN \调试\ sbirDec2016.sql

+0

什么,当你尝试发生在一个简单的选择?没有存储过程,也没有变量。 –

+0

你在什么版本的SQL上(SELECT @@ VERSION;)? –

回答

0

你真的需要全文索引:

SELECT DISTINCT [dbo].[sbir_export].[sbirID], [dbo].[sbir_export].[TopicName] 
From [dbo].[sbir_export] 
WHERE [Description] LIKE '%' + @Keyword + '%' 
+0

是的,这是第一步,所以我需要FTS ... –

+0

,但我得到它的工作。问题在于我的索引... doh。 –