2010-01-13 4 views
4

Есть ли способ (или существующая библиотека, не обязательно встроенный в .NET) на C#, который выполняет простую проверку строки SQL?Подтвердить правильную строку SQL

Сценарий: инструкция по обновлению здания для уменьшения нагрузки на загрузку SQL по сравнению с отдельными операторами. В случае, если строковая сборка делает что-то «нечетное», например, заканчивая запятой, я хотел бы проверить правильность строки.

+0

Вы хотите сказать, что пытаетесь проверить утверждение SQL? Ваш сценарий, похоже, не проливает свет. –

+0

Да, это то, что я сказал хе-хе. Однако я разъяснил сценарий. –

ответ

5

Если вы хотите проверить SQL с помощью SQL Server, вы можете сделать это, добавив

SET PARSEONLY ON 

до вашего сценария, а затем

SET PARSEONLY OFF 

после вашего сценария.


Если вам нужно, чтобы не идти в базу данных, то, возможно, вы можете использовать сборки, Microsoft Visual Studio Team System 2008 Database Edition GDR включает в себя (у них есть код, который обрабатывает SQL синтаксического анализа и генерации скрипта). Если у вас нет версии базы данных или набора команд, вы можете загрузить пробную версию, чтобы получить сборки.

Here is a link Я нашел, где кто-то использует эти сборки.

+0

Несомненно, это все равно отправляет данные в SQL, хотя для проверки? Я больше ищу что-то для проверки на логическом уровне, а не на уровне данных. –

+0

Да, но что может быть более эффективным, чем использование SQL Server для проверки? Вы даже можете использовать локальный сервер, чтобы ускорить его, если хотите. –

+0

Я думаю, что использование локального SQL-сервера только для проверки является излишним до n-й степени. Прямо сейчас, он по-прежнему отправляется на SQL и возвращается с ошибкой, если есть проблема. Я хочу пропустить средний шаг и проверить (по крайней мере до приличной степени) на логическом уровне. –

0

Этот сторонний компонент выполняет довольно хорошую работу по проверке sql без перехода на сервер. SqlParser

-1

Я заметил, что если объявить новый объект System.Data.SqlClient.SqlConnection и установите ConnectionString поле в синтаксический недопустимую строку подключения, он будет бросать исключение, так что это будет один из способов проверки.

System.Data.SqlClient.SqlConnection foo 
     = new System.Data.SqlClient.SqlConnection(); 
foo.ConnectionString = "not a valid connection string"; //exception thrown here 
+0

Как вы уже писали, это работает только для ConnectionString, но не для самого оператора SQL. – Oliver

+0

-1: не отвечает на вопрос вообще. –

+0

, вы правы. Он сказал «SQL String», а не «SQL Connection String» –

Смежные вопросы