che voglio utilizzare una query come seguendo, Cerco informazioni esatte/link per sfuggire stringhestringa corretta Escaping per stringhe letterali T-SQL
BOOKTITLE è NVARCHAR (200)
SELECT * FROM Books DOVE BookTitle IN ('Mars and Venus', 'Stack''s Overflow \ r \ n ')
Domanda: Solo "" deve essere scappato o anche \ r \ n deve essere scappato pure ? MySql .Net Provider espone un metodo per l'escape dei valori di stringa, esiste una tale funzione nel provider .Net di Sql Server?
Probabilmente ho bisogno di eseguire l'escape equivalente in C# per i valori stringa.
Sono a conoscenza di Parameterized Command, ma al fine di ridurre al minimo il mio server alla comunicazione client ei miei valori nella clausola IN sono in numero da 20 a 50, diventa troppo costoso per eseguire SELECTs per ogni valore di BookTitle in una sola chiamata. Piuttosto, l'esecuzione di una singola query e il ripristino di tutti i risultati in cascata consente di risparmiare risorse di rete.
Questo è un commento tangenziale, ma comunque importante. Se stai facendo questo per le tue query nello studio di gestione, va bene. Ma se stai facendo questo _programmaticamente_ — costruisci la tua stringa di query ed esegui l'escape in un programma lato client — _lo stai facendo male_. Hai bisogno di una query parametrizzata. –
Il suggerimento che è necessario eseguire 1 selezione per ogni valore del parametro non è corretto. Utilizzare un parametro con valore di tabella O XML OPPURE utilizzare una stringa delimitata da virgole e decomprimerla sul lato di SQL Server. Questa sarà una domanda. http://www.sommarskog.se/arrays-in-sql-2008.html – Davos