QuoteName no da resultado

estoy probando este codigo

CREATE TABLE #t 
( 
   nam Varchar(100) 
) 
INSERT INTO #t(nam)VALUES('abc[]def') 
SELECT * FROM #t Where Quotename(nam) like Quotename('abc[]def') 
drop table #t 

y no me da ningún resultado... ¿Me estoy perdiendo algo?

preguntado el 22 de mayo de 12 a las 16:05

No use LIKE cuando conoces la cadena exacta. SELECT * FROM #t Where nam = 'abc[]def' funciona perfectamente. -

2 Respuestas

CREATE TABLE #t 
( 
   nam Varchar(100) 
); 
INSERT INTO #t(nam)VALUES('abc[]def'); 
SELECT * FROM #t Where Quotename(nam) = Quotename('abc[]def');
drop table #t;

No devuelve nada porque Brackets [ ] se conocen como alfabetos comodín con LIKE. El conjunto de caracteres especificado entre paréntesis comodín que coincidirá con cualquier carácter en la posición especificada (la ubicación del comodín).

http://msdn.microsoft.com/en-us/library/ms179859.aspx

Abra el enlace y busque el siguiente texto.

Uso de los caracteres comodín [ ]

contestado el 23 de mayo de 12 a las 14:05

No necesitas el nombre de la cita que necesitas escapar

CREATE TABLE #t 
( 
   nam VARCHAR(100) 
) 
INSERT INTO #t(nam) VALUES('abc[]def') 

SELECT * 
FROM #t 
WHERE nam LIKE 'abc\[]def' ESCAPE '\' 

DROP TABLE #t

contestado el 22 de mayo de 12 a las 16:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.