2010-02-09 1 views
0

Я использую ADO .NET и MS SQL Server 2008.Проверьте, могу ли я выполнить некоторую SQL-команду

У меня есть объект подключения к серверу и команда:

SqlConnection conn = /* my connection*/; 
string cmd = "some_sql_command"; 

Я хочу чтобы проверить, может ли SQL Server выполнить выполнить cmd. Я не хочу выполнять cmd, но я хочу знать, если SQL Server может его выполнить.

cmd может быть любой один оператором SQL, это не процедура, сделка или несколько команд и т.д ..

ответ

3

Ну, вы всегда можете начать транзакцию, выполнить команду, а затем отката сделки так что никаких изменений в базе данных не происходит.

Другой способ заключается в использовании метода ServerConnection.ExecuteNonQuery, который, когда передан флаг ParseOnly, разбирает команду и ничего не делает.

+1

Как и примечание, Query Analyzer/Management Studio по-настоящему не подчиняются SET PARSEONLY ON - они все равно выполняют инструкцию. Вам также необходимо использовать SET NOEXEC ON и/или SET FMTONLY ON, однако при этом вы теряете возможность привязки анализатора, поэтому он не будет предупреждать вас о недопустимых именах объектов или столбцов. –

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

  • Нет связанных вопросов^_^