यह आलेख SQL सर्वर डेटाबेस में उपयोगकर्ता-परिभाषित दृश्यों की सूची वापस करने के चार तरीके प्रस्तुत करता है।
यदि आप केवल सिस्टम दृश्य देखना चाहते हैं, या दोनों उपयोगकर्ता-परिभाषित और . देखना चाहते हैं सिस्टम दृश्य, SQL सर्वर में sys.views, sys.system_views और sys.all_views के बीच अंतर देखें।
विकल्प 1 - दृश्य सूचना स्कीमा दृश्य
आप VIEWS
का उपयोग कर सकते हैं डेटाबेस में सभी उपयोगकर्ता-परिभाषित दृश्यों की सूची प्राप्त करने के लिए सूचना स्कीमा दृश्य।
USE Music; SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS;
परिणाम:
+----------------+--------------+ | TABLE_SCHEMA | TABLE_NAME | |----------------+--------------| | dbo | RockAlbums | | dbo | JazzAlbums | | dbo | BluesAlbums | +----------------+--------------+
दृश्य की परिभाषा लौटाएं
INFORMATION_SCHEMA.VIEWS
दृश्य में एक VIEW_DEFINITION
भी है कॉलम, ताकि यदि आवश्यक हो तो आप आसानी से प्रत्येक दृश्य की परिभाषा वापस कर सकते हैं।
SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS;
विकल्प 2 - sys.views सिस्टम कैटलॉग व्यू
दृश्यों की सूची वापस करने का दूसरा तरीका sys.views
. को क्वेरी करना है सिस्टम कैटलॉग व्यू।
USE Music; SELECT SCHEMA_NAME(schema_id) AS [Schema], Name FROM sys.views;
परिणाम:
+----------+-------------+ | Schema | Name | |----------+-------------| | dbo | RockAlbums | | dbo | JazzAlbums | | dbo | BluesAlbums | +----------+-------------+
दृश्य की परिभाषा लौटाएं
sys.view
दृश्य में ऑब्जेक्ट की परिभाषा के लिए एक कॉलम शामिल नहीं है। यदि आप प्रत्येक दृश्य की परिभाषा वापस करना चाहते हैं, तो आप इसे sys.sql_modules
के साथ जोड़ सकते हैं सिस्टम दृश्य।
उदाहरण:
SELECT definition FROM sys.views v INNER JOIN sys.sql_modules m ON v.object_id = m.object_id;
विकल्प 3 - sys.objects सिस्टम कैटलॉग व्यू
दृश्यों की सूची वापस करने का दूसरा तरीका sys.objects
. को क्वेरी करना है सिस्टम कैटलॉग व्यू।
SELECT SCHEMA_NAME(schema_id) AS [Schema], name FROM sys.objects WHERE type = 'V';
परिणाम:
+----------+-------------+ | Schema | name | |----------+-------------| | dbo | RockAlbums | | dbo | JazzAlbums | | dbo | BluesAlbums | +----------+-------------+
प्रकार V
"दृश्य" के लिए है। ऐसा करने का दूसरा तरीका type_desc
. द्वारा फ़िल्टर करना है कॉलम:
SELECT SCHEMA_NAME(schema_id) AS [Schema], name FROM sys.objects WHERE type_desc = 'VIEW';
दृश्य की परिभाषा लौटाएं
sys.objects
दृश्य में ऑब्जेक्ट की परिभाषा के लिए एक कॉलम शामिल नहीं है। यदि आप प्रत्येक दृश्य की परिभाषा वापस करना चाहते हैं, तो आप इसे 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';
विकल्प 4 - sp_tables संग्रहित प्रक्रिया
sp_tables
संग्रहीत कार्यविधि उन वस्तुओं की सूची लौटाती है जिन्हें वर्तमान परिवेश में क्वेरी किया जा सकता है। इसमें समानार्थी वस्तुओं को छोड़कर कोई भी तालिका या दृश्य शामिल है।
आप @table_type
. के साथ परिणामों को केवल दृश्यों तक सीमित कर सकते हैं पैरामीटर। आप इसे केवल किसी दिए गए स्वामी या कैटलॉग तक सीमित भी कर सकते हैं।
निम्नलिखित कोड को निष्पादित करने से सिस्टम दृश्य सहित - वर्तमान डेटाबेस में सभी दृश्य वापस आ जाएंगे।
EXEC sp_tables @table_type = "'VIEW'";
मैं यहां परिणाम प्रस्तुत नहीं करूंगा क्योंकि यह एक लंबी सूची है।
यहां इसे किसी दिए गए डेटाबेस स्वामी तक सीमित कर दिया गया है:
EXEC sp_tables @table_owner = 'dbo', @table_type = "'VIEW'";
परिणाम:
+-------------------+---------------+--------------+--------------+-----------+ | TABLE_QUALIFIER | TABLE_OWNER | TABLE_NAME | TABLE_TYPE | REMARKS | |-------------------+---------------+--------------+--------------+-----------| | Music | dbo | BluesAlbums | VIEW | NULL | | Music | dbo | JazzAlbums | VIEW | NULL | | Music | dbo | RockAlbums | VIEW | NULL | +-------------------+---------------+--------------+--------------+-----------+