Per scappare '
devi semplicemente metterne un altro prima:''
Come mostra la seconda risposta, è possibile evitare virgolette singole in questo modo:
select 'it''s escaped'
il risultato sarà
it's escaped
Se stai concatenando SQL in un VARCHAR da eseguire (ovvero SQL dinamico), ti consiglio di parametrizzare l'SQL. Questo ha il vantaggio di aiutare a proteggersi dall'iniezione SQL e in più significa che non devi preoccuparti di sfuggire alle virgolette come questa (cosa che fai raddoppiando le virgolette).
ad esempio invece di fare
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = ''AAA'''
EXECUTE(@SQL)
prova questo:
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = @Field1'
EXECUTE sp_executesql @SQL, N'@Field1 VARCHAR(10)', 'AAA'