好的,我的T-SQL语句如下
IF @dept <> '' BEGIN
SET @query = @query + ' AND T6.Region2 IN (' + REPLACE(@dept, '^', '''') + ') '
END
这基本上是针对一个法国网站,而且这些地区的名称都在名称中。我要做的是将类似下面的内容传递给SQL
@dept = 'Cote-d^Armor', 'Val-d^Oise'
并将^
替换为'
。当我进行替换时,只会导致错误,就好像被替换的^
是'
并转义其余代码一样。
希望这是有道理的。
答案 0 :(得分:0)
您需要在替换之外添加一些额外的引号。试试这个:
IF @dept <> '' BEGIN
SET @query = @query + ' AND T6.Region2 IN (''' + REPLACE(@dept, '^', '''') + ''') '
END
答案 1 :(得分:0)
我不会将“'”替换为“^”来存储它,然后尝试将其转换回来。存储“Cote-d'Armor”会更加简单,只要搜索字符串中有“'”,就可以在存储过程中加倍。
SQL Server可以愉快地处理数据中的'和',它们只需要正确转义。