Para escapar '
você simplesmente precisa colocar outro antes:''
Como mostra a segunda resposta, é possível escapar das aspas simples assim:
select 'it''s escaped'
resultado será
it's escaped
Se você estiver concatenando SQL em um VARCHAR para executar (ou seja, SQL dinâmico), recomendo parametrizar o SQL. Isso tem o benefício de ajudar na proteção contra a injeção de SQL e ainda significa que você não precisa se preocupar em escapar aspas como esta (o que você faz dobrando as aspas).
por exemplo, em vez de fazer
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = ''AAA'''
EXECUTE(@SQL)
tente isto:
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = @Field1'
EXECUTE sp_executesql @SQL, N'@Field1 VARCHAR(10)', 'AAA'