2

関数の作成やストア プロシージャなどのコマンドを含む一種の大きな SQL スクリプトを解析しようとしています。ステートメントを見つけるたびにファイルを文字列に分割しGOたい (SMO の代わりに通常の ado.net を使用して実行したい)。

問題は、これに適した正規表現が今のところ見つからないことです。単純な\bGO\b無視ケースを使用すると、それが分割されます。ただし、次のようなコメント内のすべての go(s) も分割されます

/*****************************\
sql statement 1
GO
sql statement 2
GO
\****************************/

私の要件は次のとおりです。スクリプトにGOステートメントが含まれていても、コメントの下にある場合はスクリプトを分割しないでください。スクリプト全体が次のようになっているとします。

sql statement 1
GO
/*****************************\
sql statement 2
GO
sql statement 3
GO
\****************************/
sql statement 4

期待される出力は次のようになります

First command :
sql statement 1

Second command :

/*****************************\
sql statement 2
GO
sql statement 3
GO
\****************************/
sql statement 4

これについて何か考えがありますか?

前もって感謝します。:)

4

1 に答える 1