2017-02-28 62 views
2

我有一个sql模式文件,其中包含存储过程,索引和创建表语句。我如何解析文件并提取所有的创建表语句。 create table语句没有被定义为一行。结构如下。提取表从sql模式文件创建语句

CREATE TABLE [CriticalZone] (
    [Id]  INT   IDENTITY (1, 1) NOT NULL, 
    [SiteId] NVARCHAR (100) NOT NULL, 
    [ZoneId] NVARCHAR (255) NOT NULL, 
    [ZoneName] NVARCHAR (255) NULL, 
    PRIMARY KEY CLUSTERED ([SiteId] ASC, [ZoneId] ASC) 
); 

请建议。

回答

3

如果您确定awk,以下将保留create陈述。您可能需要根据您的要求更改ORS的值。因为这是添加一个新行,请随时从ORS删除\n

awk -v RS=';' -v ORS=';\n' '/CREATE TABLE/' inputfile