How do you concatenate strings inside of a CONTAINS in SQL Server 2008?

可紊 提交于 2019-12-13 03:46:46

问题


SQL Server 2008 is telling me that it doesn't like the "+" in the CONTAINS. Not sure what I'm doing wrong here.

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)

Update

I'v decided to move this to a scalar function. It was a lot easier to handle the code that way.


回答1:


use QUOTENAME(@VARIABLE,'''') the + is not your problem.



来源:https://stackoverflow.com/questions/1805288/how-do-you-concatenate-strings-inside-of-a-contains-in-sql-server-2008

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!