如何使用Regex拆分包含GO语句的sql脚本?

时间:2013-11-09 22:13:08

标签: sql regex

我正在尝试使用.NET SQL客户端库来解析其中包含GO语句的sql脚本。根据我的理解,GO仅受osql,sqlcmd和SSMS支持,并且.NET SQL客户端库不支持GO。我也不能使用.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

我需要Regex给我一个包含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
')

0 个答案:

没有答案