Pour '
vous échapper, vous devez simplement en mettre un autre avant:''
Comme le montre la deuxième réponse, il est possible d'échapper aux guillemets simples comme ceci:
select 'it''s escaped'
le résultat sera
it's escaped
Si vous concaténez SQL dans un VARCHAR à exécuter (c'est-à-dire SQL dynamique), je vous recommande de paramétrer le SQL. Cela a l'avantage d'aider à se prémunir contre l'injection SQL et signifie que vous n'avez pas à vous soucier d'échapper des guillemets comme celui-ci (ce que vous faites en doublant les guillemets).
par exemple au lieu de faire
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = ''AAA'''
EXECUTE(@SQL)
essaye ça:
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = @Field1'
EXECUTE sp_executesql @SQL, N'@Field1 VARCHAR(10)', 'AAA'