2015-04-26 7 views
1

Мне нужно выполнить операцию поиска и замены на сотни файлов сценариев SQL. Идея заключается в том, чтобы превратить это:регулярные выражения на sql-файле

CREATE PROCEDURE [dbo].[proc_whatever] 
    (
     @id INT, 
     @parameter VARCHAR(1) 
    ) 
AS 
    BEGIN 
     ... 
    END 

В это:

IF OBJECT_ID('[dbo].[proc_whatever]') IS NULL 
     EXEC('CREATE PROCEDURE [dbo].[proc_whatever] AS SET NOCOUNT ON;') 
GO 

ALTER PROCEDURE [dbo].[proc_whatever] 
    (
     @id INT, 
     @parameter VARCHAR(1) 
    ) 
AS 
    BEGIN 
     ... 
    END 

Для этого я хотел бы использовать Notepad ++.

Любой отзыв или идеи?

+0

спасибо всем, кто ответил. Я очень ценю вашу помощь – abx78

ответ

1

Вы можете использовать эту замену регулярок:

Find What:  CREATE\s+PROCEDURE\s+(\[.*?\]\.\[.*?\])\s+\(\s+(@id INT,\[email protected] VARCHAR\(\d+\)\s+)\s+\) 
Replace With: IF OBJECT_ID\('$1'\) IS NULL\r\n EXEC\('CREATE PROCEDURE $1 AS SET NOCOUNT ON;'\)\r\nGO\r\n\r\nALTER PROCEDURE $1\r\n \(\r\n  $2\) 

Испытано:

enter image description here

1

поиск:

CREATE PROCEDURE ([\[\]a-zA-Z_.]+)\s*\(

заменить в:

IF OBJECT_ID \('$1'\) IS NULL \n EXEC \('CREATE PROCEDURE $1 AS SET NOCOUNT ON;'\) \n GO \n ALTER PROCEDURE $1 \(
Смежные вопросы