Как вы соединяете строки внутри КОНТЕЙНОВ в SQL Server 2008? - PullRequest
0 голосов
/ 26 ноября 2009

SQL Server 2008 говорит мне, что ему не нравится знак «+» в СОДЕРЖАНИИ. Не уверен, что я здесь делаю не так.

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 голосов
/ 26 ноября 2009

используйте QUOTENAME (@VARIABLE, '' ''), + не ваша проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...