我有很多带有DDL和DML语句的SQL脚本。
我想隔离并提取修改/创建/删除的SQL对象。 我是一个剧本:
create proc [dbo].test
as
print 1
go
drop table test_table
go
alter procedure dbo.test
as
print 2
我必须创建/更改/删除SQL对象,例如: G。如下:
proc dbo.test - create
table test_table - drop
proc dbo.test - alter
答案 0 :(得分:0)
我不确定你会在哪里使用正则表达式但是试试这个:
/(create)(.*)|(drop)(.*)|(alter)(.*)/
答案 1 :(得分:0)
要解析任意sql server存储过程,使用SQL解析器会更好。尝试用正则表达式解析任意SQL将相当于编写自己的解析器。
在完整SQL Parser的帮助下,来自this page的演示生成了这样的结果,这正是您所需要的:
sstMssqlCreateProcedure(proc: [dbo].test - create)
sstMssqlPrint
sstMssqlGo
sstMssqlDropTabletable: test_table - drop
sstMssqlGo
sstMssqlAlterProcedure(proc: dbo.test - alter)
sstMssqlPrint