risposta-alla-domanda-sullo-sviluppo-web-bd.com

Caratteri che devono essere salvati in Sql

Stavo cercando un elenco di caratteri speciali che devono essere salvati in ms sql server ma non ho trovato una e la maggior parte delle risposte che ho visto per le domande simili consigliate di utilizzare le query parametrizzate .. che sto già facendo, ma il framework che sto usando non mi sfugge. 

Così ho pensato di dare un sacco di quelli a provare e vedere quale fallisce .... e ho provato una query semplice 

select * from x where value = '<characters>'

in tale query ho provato quasi tutti i caratteri che ho trovato sulla mia tastiera e tutti sembrano funzionare ... oltre alla Singe Quote .. che uno fallisce.

Quindi voglio sapere la lista di caratteri che non sono validi e devono essere salvati in ms sql server - tsql e non voglio correre il rischio di scappare dalla singola citazione e lasciare il resto che potrebbe causare problemi 

Apprezzo il tuo aiuto

18
Hell Boy

L'unico carattere che richiede la fuga in una stringa è una virgoletta singola (che viene eseguita con due virgolette singole insieme). Altrimenti, è una stringa e t-sql non ne risentirà più.

Se stai utilizzando un'istruzione LIKE, consulta questo argomento SO Esegui una stringa in SQL Server in modo che sia sicuro da utilizzare nell'espressione LIKE

Per inciso, qualsiasi framework che non mi permetta di usare parametri, che non mi sfugge correttamente, è un duro stop. Cercare di disinfettare manualmente l'input delle stringhe è come affidarsi al metodo pull out; alla fine ti prenderà.

33
HackedByChinese

Non sono sicuro che sia accurato.

% e . e altri caratteri jolly a seconda della query, potrebbe anche richiedere l'escape . dove stai cercando un punto. Questo fallirà

select * from xxxx where field like '%.%'   
1
Sven Hansen

Volevo solo dire che _ (sottolineatura) ha anche bisogno di essere scappato. 

seleziona * da Prodotti dove SomeColumn come 'FD [_]%'

A proposito, non c'è niente di sbagliato nelle query parametrizzate, ma a volte si vuole andare alla console di gestione SQL ed eseguire rapidamente una query per trovare qualcosa.

0
DotnetCoder