Saltar al contenido

escapar – Carácter de escape en SQL Server

septiembre 23, 2021
apple touch icon@2

Escapar ' simplemente necesitas poner otro antes: ''

Como muestra la segunda respuesta, es posible escapar de las comillas simples como esta:

select 'it''s escaped'

el resultado será

it's escaped

Si está concatenando SQL en un VARCHAR para ejecutar (es decir, SQL dinámico), entonces recomendaría parametrizar el SQL. Esto tiene el beneficio de ayudar a protegerse contra la inyección de SQL y significa que no tiene que preocuparse por escapar de las cotizaciones como esta (lo que hace al duplicar las cotizaciones).

por ejemplo, en lugar de hacer

DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = ''AAA'''
EXECUTE(@SQL)

prueba esto:

DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = @Field1'
EXECUTE sp_executesql @SQL, N'@Field1 VARCHAR(10)', 'AAA'

close