.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
')