2017-02-09 5 views
-1

このストアドプロシージャは文字列変数にあり、名前を取得します。文字列からストアドプロシージャ名を取得します。

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

はこれにに任意のライブラリはありますか?

+0

https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx – Serg

答えて

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() o先頭または末尾の空白を削除する。

+0

これは有効なSQLプロシージャ名です。[Myプロシージャ] これはいくつかの助けになるかもしれません:http://stackoverflow.com/questions/30151800/regular-expression-for-validating-sql-server-table-name –

関連する問題