3

我正在尝试使用 .NET SQL 客户端库来解析其中包含 GO 语句的 sql 脚本。据我了解,GO 仅受 osql、sqlcmd 和 SSMS 支持,.NET SQL 客户端库不支持。我也不能使用 .NET SMO。因此,我唯一剩下的选择是解析脚本并将其拆分为不包含 GO 的 SQL 字符串组,然后一次执行一个。我将不胜感激有关使用正则表达式执行此操作的正确方法的帮助。特别是,我希望解决以下问题。

假设我有一个 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 个字符串项的数组,如下所示(在正确识别 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