3

.NET SQL クライアント ライブラリを使用して、GO ステートメントを含む SQL スクリプトを解析しようとしています。私が理解しているように、GOはosql、sqlcmd、およびSSMSでのみサポートされており、.NET SQLクライアントライブラリではサポートされていません。.NET SMO も使用できません。したがって、残っている唯一のオプションは、スクリプトを解析し、GO を含まない SQL 文字列のグループに分割し、一度に 1 つずつ実行することです。正規表現でこれを行う正しい方法を教えていただければ幸いです。特に、以下の解決を目指しています。

次のような SQL スクリプトがあるとします。

update tbl1
set col1 = "
GO right and then left
"
where col1 is null

/*
GO statement is not in TSQL
*/

  GO

select '
GO left and another left
'

GO --break up the batch

insert into tbl2 (col1)
values ('
GO
')

GO

次のように 3 つの文字列項目を含む配列を取得するには、Regex が必要です (3 つの GO ステートメントを正しく識別して削除した後)。

配列項目 1

update tbl1
set col1 = "
GO right and then left
"
where col1 is null

/*
GO statement is not in TSQL
*/

配列項目 2

select '
GO left and another left
'

配列項目 3

insert into tbl2 (col1)
values ('
GO
')
4

0 に答える 0