SQL SERVER如何转义特殊字符

时间:2012-11-08 22:17:48

标签: sql-server-2008

我有一个存在于链接服务器上的表,它有一个名为name的字段,我想在该字段上搜索名为Macy的字符串。我将其作为动态SQL执行: -

declare @Sql nvarchar(2000)
declare @searchName nvarchar(255)

SET @searchName = N'macy''s'
SET @sql = 'SELECT * from crm_opportunity o where o.NAME LIKE ''% ' + @searchName + '%'' ESCAPE '''''' '
exec (@sql).

换句话说,我试图逃避单引号。我收到错误消息102,级别15,状态1,行1's'附近的语法不正确。

任何想法和建议!

1 个答案:

答案 0 :(得分:0)

加倍引号会转义字符,因此您可以在字符串值中使用它。

exec('select *  from [dbo].[UsersTbl] where and  UserType = ''CLT'' ')