que quiero usar una consulta de la siguiente manera, estoy buscando para obtener información exacta/enlace para escapar de las cadenascadena correcta de escape por los literales de cadena T-SQL
BOOKTITLE es de tipo nvarchar (200)
SELECT * FROM Libros DONDE BookTitle IN ('Mars and Venus', 'Overflow' de la pila \ r \ n ')
Pregunta: ¿Solo se debe "escapar" o incluso se debe escapar \ r \ n? ? MySql .Net Provider expone un método para escapar de los valores de cadena, ¿existe alguna función en el servidor Sql .Net Provider?
Probablemente necesite un escape de C# equivalente para los valores de cadena.
Conozco el Comando parametrizado, pero para minimizar la comunicación entre el servidor y el cliente, y mis valores en la cláusula IN están en el número de 20 a 50, se vuelve demasiado costoso para ejecutar SELECT para cada valor de BookTitle en una llamada En lugar de ejecutar una sola consulta y devolver todos los resultados en cascada, ayuda a ahorrar recursos de red.
Este es un comentario tangencial, pero sigue siendo importante. Si haces esto para tus propias consultas en el estudio de administración, está bien. Pero si está haciendo _programmatically_ — construyendo su cadena de consulta y escapando en un programa del lado del cliente — _lo está haciendo mal_. Necesitas una consulta parametrizada. –
Su sugerencia de que necesite ejecutar 1 selección para cada valor del parámetro es incorrecta. Utilice un parámetro con valores de tabla OR XML O utilice una cadena delimitada por comas y descomprímalo en el lado del servidor SQL. Esa será una consulta. http://www.sommarskog.se/arrays-in-sql-2008.html – Davos