خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
لیست کردن همه User Defined Function یا UDF های یک دیتابیس در SQL Server
لیست کردن User Defined Function یا UDF ها در SQL Server امری است که مانند لیست کردن stored procedure ها و Trigger ها انجام می یوشد و البته در خصوص لیست کردن stored procedure ها و Trigger ها در پست های قبلی صحبت کردیم که در این خصوص می توانید به لینک های زیر مراجعه کنید.
لیست کردن همه Stored Procedures های یک دیتابیس در SQL Server
یافتن Stored Procedure های یک دیتابیس بر اساس تاریخ ایجاد و ویرایش
یافتن Triggerهای یک دیتابیس بر اساس تاریخ ایجاد و ویرایش
نوع آبجکت هایی که در اسکریپت فوق مشاهده می کنید، به شرح ذیل می باشد:
از طرف دیگر می توانید به جای استفاده از نوع ستون، از typ_desc استفاده کنید. این روش جالبی برای یافتن UDF ها نیست ولی به درستی کار می کند.
در قسمت Functions، همه UDF های مربوط به این دیتابیس را مشاهده خواهید کرد.
لیست کردن همه Stored Procedures های یک دیتابیس در SQL Server
یافتن 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 های مربوط به این دیتابیس را مشاهده خواهید کرد.
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: