You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server给varchar变量赋值时设置COLLATE及转义反斜杠的方法

错误原因

ESCAPE 是SQL Server中LIKE运算符的专属语法参数,仅能在WHERE子句的LIKE表达式中使用,不能用于变量赋值语句,所以你之前的SET写法不符合语法规范,才会触发报错。


实现方案

两个需求可以拆分处理,完全不需要在赋值语句里加ESCAPE:

  1. 反斜杠转义处理
    赋值阶段只需要按照SQL字符串的基础转义规则编写即可:字符串里的单引号用两个单引号转义,要存入一个反斜杠就写两个反斜杠,最终变量里会直接存储你要给LIKE用的完整匹配表达式。
  2. 指定排序规则
    可以直接在字符串常量后面加COLLATE Latin1_General_100_BIN2,变量会继承这个排序规则,后续使用该变量做匹配时会自动生效。

正确代码示例

变量赋值写法:

SET @MatchExpression = '-., *+&~`;:''"#/\(\)\\' COLLATE Latin1_General_100_BIN2

后续查询使用写法:

SELECT name FROM Names 
WHERE name LIKE @MatchExpression ESCAPE '\'

内容的提问来源于stack exchange,提问作者Víctor Arango Ramiro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:54:03