Solución:
Escapa del apóstrofo (es decir, duplica el carácter de comillas simples) en tu SQL:
INSERT INTO Person
(First, Last)
VALUES
('Joe', 'O''Brien')
/
right here
Lo mismo se aplica a las consultas SELECT:
SELECT First, Last FROM Person WHERE Last="O"'Brien'
El apóstrofo, o comilla simple, es un carácter especial en SQL que especifica el comienzo y el final de los datos de cadena. Esto significa que para usarlo como parte de sus datos de cadena literal necesita escape
el carácter especial. Con una sola cotización, esto generalmente se logra duplicando su cotización. (Dos caracteres de comillas simples, no comillas dobles en lugar de comillas simples).
Nota: Solo debe preocuparse por este problema cuando edita datos manualmente a través de una interfaz SQL sin procesar, ya que escribir consultas fuera del desarrollo y las pruebas debería ser algo poco común. En el código hay técnicas y frameworks (dependiendo de su pila) que se encargan de escapar de caracteres especiales, inyección SQL, etc.
Solo tienes que duplicar las comillas simples …
insert into Person (First, Last)
values ('Joe', 'O''Brien')
Necesitas escapar del apóstrofe. En T-SQL esto es con un apóstrofe doble, por lo que su insert
declaración se convierte en:
Insert into Person
(First, Last)
Values
'Joe', 'O''Brien'