declare @s Nvarchar(100)
set @s='"3" OR "M" OR "MP" OR "MP3" OR "P" OR "P3" OR "本" OR "笔" OR "笔记" OR "笔记本 OR "记"'SELECT * FROM (SELECT xxxx FROM xx item WHERE CONTAINS(item.[ItemName],@s)
--为什么不行,但是 ,出错提示为消息 7630,级别 15,状态 3,第 5 行
--在全文搜索条件 '"3" OR "M" OR "MP" OR "MP3" OR "P" OR "P3" OR "本" OR "笔" OR "笔记" OR "笔记本 OR "记"' 内的 '记' 附近存在语法错误。declare @s Nvarchar(100)
set @s='"3" OR "M" OR "MP" OR "MP3" OR "P" OR "P3" OR "本" OR "笔" OR "笔记" OR "笔记本 OR "记"'SELECT * FROM (SELECT xxxx FROM xx item WHERE CONTAINS(item.[ItemName],‘"3" OR "M" OR "MP" OR "MP3" OR "P" OR "P3" OR "本" OR "笔" OR "笔记" OR "笔记本 OR "记"’)
可以查询

解决方案 »

  1.   

    exec('SELECT * FROM (SELECT xxxx FROM xx item WHERE CONTAINS(item.[ItemName],'+@s+')')
      

  2.   

    "3" OR "M" OR "MP" OR "MP3" OR "P" OR "P3" OR "本" OR "笔" OR "笔记" OR "笔记本" OR "记"
      

  3.   

    发错了字符串,,使用动态EXEC 我也不知道
    难道你不知道 不能使用 查询计划哦?SELECT * FROM sys.syscacheobjects 
    自己看
      

  4.   

    使用EXEC SP_EXECUTESQL
    大家帮忙看下啊
      

  5.   

    晕 ,字符  被 截取了,,汗。。
    因为EXEC SP_EXECUTESQL
    里面指定了长度