SQL的字符串中单引号和括号怎么进行转义?

爱知菜 2011-07-18 12:12:19
比如我声明了一个字符串变量
declare @name varchar(400)

然后执行
set sql='select * from table where (name like '''+@name+''' )'
exec(sql)

问题是我这个@name里用户可能输入括号,问号,单引号等各种会引起歧义的字符,想请教下怎么转义?

谢谢
...全文
1348 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-07-19
  • 打赏
  • 举报
回复
拼接的应该不需要转
cd731107 2011-07-19
  • 打赏
  • 举报
回复
不用转义吧,加个%,模糊匹配一下,
set sql='select * from table where (name like ''%'+@name+'%'' )'
exec(sql)
aXen 2011-07-19
  • 打赏
  • 举报
回复
使用escape,如:
WHERE comment LIKE '%30!%%' ESCAPE '!'

并且你这好像多此一举,貌似不需要使用拼接字符串,直接查询,可能连转义都不需要了。
爱知菜 2011-07-18
  • 打赏
  • 举报
回复
我用的是mssql

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧