خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


لیست کردن همه User Defined Function یا UDF های یک دیتابیس در SQL Server

لیست کردن همه User Defined Function یا UDF های یک دیتابیس در SQL Server
لیست کردن User Defined Function یا UDF ها در SQL Server امری است که مانند لیست کردن stored procedure ها و Trigger ها انجام می یوشد و البته در خصوص لیست کردن stored procedure ها و Trigger ها در پست های قبلی صحبت کردیم که در این خصوص می توانید به لینک های زیر مراجعه کنید.

سیستم یکپارچۀ سازمانی راهکار




Find All User Defined Functions Using Transact-SQL

برای بدست آوردن کلیه function های یک دیتابیس از اشیائی مانند Sys.Objects, Information_Schema.Routines, syscomments و یا Sys.Sql_Modules استفاده کنید.

Using Sys.Objects

با استفاده از View سیستمی sys.objects می توانید نام، schema id، نوع User Defined Function یا UDF، تاریخ ایجاد و یا ویرایش و سایر جزئیات را دریافت کنید. می توانید از View سیستمی sys.object استفاده کنید تا لیستی از توابع تعریف شده توسط کاربر را از دو طریق دریافت کنید. یک روش استفاده از نوع ستون برای فیلتر کردن بر اساس انواع اشیاء است و نوع دیگر استفاده از type_desc است یعنی شرح نوع آبجکت برای فیلتر کردن و بدست آوردن فقط UDF ها می باشد. در ادامه از هر دو متد برای بدست آوردن user defined fnction استفاده کرده ایم.

USE WideWorldImporters;
GO
SELECT
name AS 'Function Name',
SCHEMA_NAME(schema_id) AS 'Schema',
type_desc AS 'Function Type',
create_date AS 'Created Date'
FROM
sys.objects WHERE
type in ('FN', 'IF', 'FN', 'AF', 'FS', 'FT');
GO

نوع آبجکت هایی که در اسکریپت فوق مشاهده می کنید، به شرح ذیل می باشد:

FN = SQL scalar function
IF = SQL inline table valued function
TF = SQL table valued function
AF = CLR aggregate function
FS = CLR scalar function
FT = CLR table valued function

از طرف دیگر می توانید به جای استفاده از نوع ستون، از typ_desc استفاده کنید. این روش جالبی برای یافتن UDF ها نیست ولی به درستی کار می کند.

USE WideWorldImporters;
GO
SELECT
name AS 'Function Name',
SCHEMA_NAME(schema_id) AS 'Schema', type_desc AS 'Function Type',
create_date AS 'Created Date'
FROM
sys.objects
WHERE
type_desc LIKE '%FUNCTION%';
GO

Using Information_Schema.Routines

برای لیست کردن همه Function های یک دیتابیس از View سیستمی Information_Schema.Routines می توانید استفاده کنید. با استفاده از این view ی سیستمی می توانید نام، source code، database schema،تاریخ ایجاد و ویرایش و سایر جزئیات UDF ها را بدست آورید.

USE WideWorldImporters;
GO
SELECT
ROUTINE_NAME,
ROUTINE_DEFINITION ,
ROUTINE_SCHEMA,
DATA_TYPE,
CREATED
FROM
INFORMATION_SCHEMA.ROUTINES WHERE
ROUTINE_TYPE = 'FUNCTION'
GO

Using Syscomments

از View ی سیستمی syscomments برای لیست کردن object id و source code و هر آبجکت قابل برنامه ریزی در دیتابیس می توانید استفاده کنید. در اینجا از syscomments برای لیست کردن همه Function های یک دیتابیس استفاده شده است. در صورت لزوم می توانید از OBJECT_SCHEMA_NAME(id) در select خود استفاده کنید تا نام schema در UDF را مشاهده کنید.

USE WideWorldImporters;
GO
SELECT
DISTINCT OBJECT_NAME(id)
FROM
syscomments
WHERE
OBJECTPROPERTY(id, 'IsInlineFunction') = 1 OR
OBJECTPROPERTY(id, 'IsScalarFunction') = 1 OR
OBJECTPROPERTY(id, 'IsTableFunction') = 1
GO

Using Sys.Sql_modules

مانند syscomments می توانید از View ی sys.sql_modules استفاده کنید تا لیست همه user defined function ها را بدست آورید.

USE WideWorldImporters;
GO
SELECT
DISTINCT OBJECT_NAME(object_id) AS 'Function Name',
OBJECT_SCHEMA_NAME(object_id) AS 'Schema Name'
FROM
sys.sql_modules
WHERE
OBJECTPROPERTY(object_id, 'IsInlineFunction') = 1 OR
OBJECTPROPERTY(object_id, 'IsScalarFunction') = 1 OR
OBJECTPROPERTY(object_id, 'IsTableFunction') = 1
GO

Find All UDFs Using SSMS Object Explorer GUI

در آخرین روش از طریق SQL Server Management Studio اقدام خواهیم کرد. تا لیست UDF ها را ببینیم. در Object Explorer، به سراغ دیتابیس مورد نظرتان رفته و به قسمت Programmability بروید.
در قسمت Functions، همه UDF های مربوط به این دیتابیس را مشاهده خواهید کرد.

لیست کردن همه User Defined Function یا UDF های یک دیتابیس در SQL Server

نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز