如何在SQL Server 2008中连接CONTAINS中的字符串?

时间:2009-11-26 19:21:10

标签: tsql sql-server-2008 full-text-search

SQL Server 2008告诉我它不喜欢CONTAINS中的“+”。 不知道我在这里做错了什么。

INSERT INTO dbo.tblImportTitles
  (
   ImportTitleGUID,
   UserGUID,
   TitleName,
   TitleGUID
  )
  SELECT
   ImportTitleGUID = T.Item.value('@ImportTitleGUID', 'uniqueidentifier'),
   UserGUID = T.Item.value('@UserGUID', 'uniqueidentifier'),
   TitleName = T.Item.value('@TitleName', 'varchar(255)'),

   TitleGUID = 
   CASE 
    WHEN (SELECT TOP(2) COUNT(TitleGUID) FROM dbo.tblTitles WHERE CONTAINS(Title, '''' + T.Item.value('@TitleName', 'varchar(255)') + '''')) = 1
    THEN (SELECT TitleGUID FROM dbo.tblTitles WHERE CONTAINS(Title,'''' + T.Item.value('@TitleName', 'varchar(255)') + ''''))
    ELSE NULL
   END  

  FROM @ImportTitlesInsertXml.nodes('BatchTitles/BTitle') AS T(Item)

更新

我决定将其转换为标量函数。 以这种方式处理代码要容易得多。

1 个答案:

答案 0 :(得分:0)

使用QUOTENAME(@VARIABLE,'''')+不是你的问题。