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


لیست کردن همه View های موجود در یک پایگاه داده SQL Server

لیست کردن همه View های موجود در یک پایگاه داده SQL Server
در این پست کوتاه روش هایی را که برای مشاهده کردن View های ایجاد توسط کاربر در یک دیتابیس SQL Server ا بقررسی خواهیم کرد.

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



The VIEWS Information Schema View

شما می توانید با استفاده از View سیستمی INFORMATION_SCHEMA.VIEWS، کلیه View هایی که کاربر در یک دیتابیس ایجاد کرده است را مشاهده کنید:


USE TEST;
SELECT
TABLE_SCHEMA,
TABLE_NAME
FROM INFORMATION_SCHEMA.VIEWS;

لیست کردن همه View های موجود در یک پایگاه داده SQL Server
INFORMATION_SCHEMA.VIEWS همچنین دارای یک ستون VIEW_DEFINITION است ، بنابراین در صورت لزوم می توانید به راحتی تعریف هر View را برگردانید.

SELECT VIEW_DEFINITION
FROM INFORMATION_SCHEMA.VIEWS;

The sys.views System Catalog View

روش دیگر برای بازگرداندن لیست View ها، استفاده از View سیستمی sys.views می باشد.

USE Music;
SELECT
SCHEMA_NAME(schema_id) AS [Schema],
Name
FROM sys.views;

لیست کردن همه View های موجود در یک پایگاه داده SQL Server

View سیستمی sys.view شامل ستونی برای تعریف اشیاء نیست و اگر می خواهید تعریف هر View را بازگردانی کنید، می توانید آن را با View سیستمی sys.sql_modules جوین کنید.

SELECT definition
FROM sys.views v
INNER JOIN sys.sql_modules m
ON v.object_id = m.object_id;

The sys.objects System Catalog View
View سیستمی دیگر برای این منظور، sys.objects می باشد.

SELECT
SCHEMA_NAME(schema_id) AS [Schema],
name
FROM sys.objects
WHERE type = 'V';

لیست کردن همه View های موجود در یک پایگاه داده SQL Server
نوع V برای "View" است. روش دیگر برای این کار فیلتر کردن توسط ستون type_desc است:

SELECT

SCHEMA_NAME

(schema_id) AS [Schema],
name
FROM sys.objects
WHERE type_desc = 'VIEW';


View sys.objects هم مانند Sys.view، دارای ستونی برای تعریف object ندارد و اگر می خواهید تعریف هر View را بازگردانید، می توانید آن را با sys.sql_modules جوین کنید.

SELECT definition
FROM sys.objects o
INNER JOIN sys.sql_modules m
ON o.object_id = m.object_id
WHERE type = 'V';

The sp_tables Stored Procedure

sp_tables یک SP سیستمی است که لیستی از اشیا را که می توانند در محیط فعلی مورد پرس و جو قرار بگیرند ، برمی گرداند. این اشیاء می تواند شامل جداول، View ها به غیر از اشیاء synonym می باشد.
می توانید Result را به یک چیز خاص محدود کنید. مثلا فقط به یک مالک خاص، خروجی را محدود کنید.
با اجرای اسکریپت زیر ، تمام View های موجود در دیتابیس فعلی از جمله View های سیستمی باز گردانده می شوند.

EXEC sp_tables @table_type = "'VIEW'";

نتیجه کوئری فوق می تواند بسیار طولانی باشد ولی مثلا در اسکریپت زیر، نتیجه به یک مالک دیتابیس مشخص شده، محدود می شود:

EXEC sp_tables
@table_owner = 'dbo',
@table_type = "'VIEW'";



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

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

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


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