我正在尝试解析一个大型SQL脚本,其中包含诸如创建函数和存储过程的命令。我想在找到GO语句时将文件拆分为字符串(我想使用普通ado.net执行它,而不是SMO)。
问题是我迄今为止还没有找到合适的正则表达式。使用简单的
-- 这个go也会被拆分
使用这个表达式
这是我的脚本中SP创建的结尾,使用C#编写。非常感谢。
**编辑**
我的同事提出了一种解决方案,目前适用于我所有的脚本:
问题是我迄今为止还没有找到合适的正则表达式。使用简单的
\bGO\b
忽略大小写会将其拆分。但也会拆分注释中的所有go(s),例如:-- 这个go也会被拆分
使用这个表达式
^\bGO\b[^--]$
几乎解决了我的问题,但当我有两个连续的GO时(由于某种原因存在并且在我的领域之后),我会得到一些错误。end
go
GO
这是我的脚本中SP创建的结尾,使用C#编写。非常感谢。
**编辑**
我的同事提出了一种解决方案,目前适用于我所有的脚本:
^\s*go\s*\r\n
^\bGO\b[^--]$
** 真的有效吗,还是有错别字?我认为你可能想要避免在 GO 前面而不是后面使用--
。 - Cristian Lupascu