在FULLTEXT查询中使用参数作为列值

时间:2014-07-03 22:01:13

标签: sql-server full-text-search

是否可以传入列名作为SQLServer 2008中包含全文查询的参数?

这似乎不可能:

DECLARE @MYCOLS AS NVARCHAR(30);
DECLARE @MYVALUE AS NVARCHAR(100);
SET @MYCOLS = 'NOTES,TITLE'
SET @MYVALUE = 'Chicago'

SELECT NOTES FROM MY_NOTE_TABLE WHERE FULLTEXT((@MYCOLS),@MYVALUE)

其中MY_NOTE_TABLE的列ID(IDENTITY),TITLE NVARCHAR(100),NOTES NVARCHAR(MAX)。

如果列是专门命名的,那么工作正常,但如果可能的话,我真的想使用参数。

1 个答案:

答案 0 :(得分:0)

如果你在程序或SSRS中,就像这样......

BEGIN 

 DECLARE @SQLSTR VARCHAR(100)
 DECLARE @Columns VARCHAR(50)

 SET @Columns = 'FirstName, LastName'
 SET @SQLSTR = 'Select ' + @Columns +' FROM EM WHERE Status=$A$'
 SET @SQLSTR = REPLACE(@SQLSTR, '$', CHAR(39)) 

 Execute (@SQLSTR)

END 

我将$' s和CHAR(39)替换为一种简单的方法来修复语句'引用'文字,还有其他方法...

最后,你刚刚执行一个字符串,你已拼凑在一起......