如何使用正则表达式识别存储过程名称?

时间:2018-11-14 11:40:34

标签: sql-server regex stored-procedures

是否可以识别SP名称以及所有参数名称和类型? 我使用的正则表达式模式只能识别SP名称和最后一个参数名称。如果有人可以提供能够识别SP名称以及所有参数名称的正则表达式,我将不胜感激。

模式:

.*create procedure\s+.*\.\[(?<spname>\w+)\].*\((.*(?<aname>\@\w+)\s+(?<atype>\w+).*)\).*procedure

下面是目标字符串:

    IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID('SPNameToBeRecognized') AND OBJECTPROPERTY(id, 'IsProcedure') = 1)
            DROP PROCEDURE SPNameToBeRecognized
    GO

    CREATE PROCEDURE [dbo].[SPNameToBeRecognized] 
    (
            @FirstArg DATETIME = NULL,
            @SecondArg DATETIME = NULL,
            @ThirdArg SMALLINT = 814,
            @FouthArg SMALLMONEY = 10.00
    ) 
/*----------------------------------------------------------------------------------------------------
    Procedure   :   

0 个答案:

没有答案