从字符串中检索存储过程名称

时间:2017-02-09 19:08:15

标签: c# string

此存储过程位于字符串变量中,我想检索名称。

CREATE PROCEDURE dbo.uspGetEmployeesTest2   
    @LastName nvarchar(50),   
    @FirstName nvarchar(50)   
AS   
    SET NOCOUNT ON;  

    SELECT 
        FirstName, LastName, Department  
    FROM 
        HumanResources.vEmployeeDepartmentHistory  
    WHERE 
        FirstName = @FirstName 
        AND LastName = @LastName  
        AND EndDate IS NULL;  
GO  

如果标题看起来像我那样,我希望它可以工作:

CREATE PROCEDURE [dbo].[uspGetEmployeesTest2] 

我想得到:uspGetEmployeesTest2

这有没有图书馆?

1 个答案:

答案 0 :(得分:0)

您应该可以使用以下正则表达式CREATE PROCEDURE (?:dbo|\[dbo\])\.\[*(\w+)\]*

参见示例:https://www.myregextester.com/?r=7e17ea0b

更新以处理@JimL描述的案例: 您应该能够使用以下正则表达式CREATE PROCEDURE (?:dbo\.|\[dbo\]\.)*\[*([a-zA-Z0-9_ -]+)\]*

参见示例:https://www.myregextester.com/?r=c4a81cb3

使用上述解决方案,您可能还希望.Trim()删除前导空格或尾随空格。