Comillas simples en SQL Server

Estoy intentando lanzar una consulta tipo:
SELECT * FROM Poblaciones WHERE Nombre='L'Hospitalet de Llobregat'
Pero me da error, intento usar un caracter de escape pero no me deja:
SELECT * FROM Poblaciones WHERE Nombre='L\'Hospitalet de Llobregat' pero tampoco cuela. Esto juraria que antes me funcionaba.
¿Me puedes echar una mano?

1 respuesta

Respuesta
1
Probaste con las comillas dobles sencillas porque cuando tengo este tipo de sentencias con eso lo resuelvo.
Si pongo esto:
SELECT * FROM Poblaciones WHERE Nombre="L'Hospitalet de Llobregat"
El SQL Server me dice esto:
Servidor: mensaje 207, nivel 16, estado 3, línea 1
El nombre de columna 'Nombre' no es válido.
Servidor: mensaje 207, nivel 16, estado 1, línea 1
El nombre de columna 'L'Hospitalet de Llobregat' no es válido.
Esto es por que interpreta como nombre de columna lo que pongo entre comillas dobles. Se puede configurar el SQL Server para interpretar lo que pongo entre comillas dobles como un criterio de selección y no un nombre de columna. Pero no he conseguido hacerlo.
Por eso tengo el problema este y no he podido utilizar lo de las comillas dobles.
Yo creía que con algún tipo de carácter de escape sobraba pero no he sido capaz de encontrar ese carácter de escape que me funcione. La otra opción es la que te comenté: configurar el SQL Server para que admita las comillas dobles para identificar criterios de selección.
¿Puedes ayudarme con alguna de estas dos cosas?
Para eso le tienes que meter comillas sencillas dobles:
SELECT * FROM Poblaciones WHERE Nombre='L'''Hospitalet de Llobregat'
O colocar comillas dobles:
SELECT * FROM Poblaciones WHERE Nombre="L'Hospitalet de Llobregat"
Todo depende de la forma en que estés trabajando en armado de la sentencia.
Ya, eso lo he intentado. Lo que pasa es que el SQL Server no me deja poner comillas dobles para estos casos. Si me dices como configurar SQL Server para estos casos te lo agradecería.
He intentado configurar eso pero, aunque creo que he activado lo necesario el SQL Server no me hace caso.
Ninguna de las dos opciones que me comentas funciona en lo que piensas, intentas como te escribí la sentencia en la primera contestación:
SELECT * FROM Poblaciones WHERE Nombre='L'''''Hospitalet de Llobregat'
Hola David,
Siento seguir dando la lata con esto. Se ve que se me olvidó mencionar que esa solución tampoco me funciona.
El analizador de consultas de SQL Server me dice esto:
Servidor: mensaje 170, nivel 15, estado 1, línea 1
Línea 1: sintaxis incorrecta cerca de 'Hospitalet'.
Servidor: mensaje 105, nivel 15, estado 1, línea 1
Comilla no cerrada antes de la cadena de caracteres '
'.
Y de la siguiente forma:
SELECT * FROM Poblaciones WHERE Nombre='L''''''Hospitalet de Llobregat'
A mí solo me marca que no tengo el objeto poblaciones.
Gracias, con la solución que me dabas no daba error pero no sacaba resultados, he probado esto:
SELECT * FROM [portico].[dbo].[Abogados] WHERE Direccion LIKE '%l''aig%'
Y me ha funcionado perfectamente.
¡Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas