2012-05-03 2 views
1

私にはSelectSQLQueryBuilderがあり、そこには読み込み専用のテキストボックスがあります。ユーザーがデータを入力し、文字列が生成されます。私はこの文字列がSQLステートメントかどうかをチェックする必要があります。.Netのどのクラスでも、指定された文字列が有効なSQL文であるかどうかをチェックします。

SQL SERVER MGMT STUDIOには、ステートメントを起動せずに実行するボタンがすぐにあります。それを行う.NETの任意のクラス?どのように私はこの文字列を検証できますか?助けてください!!あなたはこの

set PARSEONLY ON 
your statement 

ようSQLServerのために文を送った場合

答えて

2

サーバーは、あなたの文を解析が、それを実行し、エラーを返しません。合格した場合は、それが有効な声明であることがわかります。

PARSEONLYによっていくつかの種類のエラーが検出されないため、実際に実行されるかどうかわかりません。これは、たとえば、SQLが有効なエラーですが、データ変換や制約違反などの不正な操作が発生します。

.NETにはクラスがないかもしれませんが、sqlにsetコマンドを追加すると、parseonlyを実行できます。私はこれがSQL Management Studioで使用されている機能だと考えています。あなたはSQL Mgt。サーバー接続がない限り、Studioはステートメントを解析できません。

PARSEONLYは接続レベルの設定です。だから、あなたが実際にその接続でSQLを実行したいなら、それを再びオンにする必要があります。

0

問題は一般的に、SQL文の解析です。言語の複雑さと多くのバリエーションのために、これはかなり困難であることが判明しました。

これらの複雑さを処理し、SQL-http://sqlparser.com/を解析する優れたライブラリが存在します。

関連する問題