Чтобы сбежать, '
вам просто нужно поставить еще один перед:''
Как показывает второй ответ, можно избежать одиночной кавычки следующим образом:
select 'it''s escaped'
результат будет
it's escaped
Если вы объединяете SQL в VARCHAR для выполнения (т.е. динамический SQL), я бы рекомендовал параметризовать SQL. Это помогает защититься от SQL-инъекций, а также означает, что вам не нужно беспокоиться об экранировании подобных кавычек (что вы делаете, удваивая кавычки).
например, вместо того, чтобы делать
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = ''AAA'''
EXECUTE(@SQL)
попробуй это:
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = @Field1'
EXECUTE sp_executesql @SQL, N'@Field1 VARCHAR(10)', 'AAA'