2009-11-26 57 views
0

SQL Server 2008告诉我它不喜欢CONTAINS中的“+”。 不知道我在这里做错了什么。如何连接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) 

更新

心中已经决定将这一移动到一个标量函数。 这样处理代码要容易得多。

回答

0

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

+0

这没有奏效。 :-( –

相关问题