Artikel ini menyajikan empat cara untuk mengembalikan daftar tampilan yang ditentukan pengguna di database SQL Server.
Jika Anda hanya ingin melihat tampilan sistem, atau dan . yang ditentukan pengguna tampilan sistem, lihat Perbedaan Antara sys.views, sys.system_views, &sys.all_views di SQL Server.
Opsi 1 – Tampilan Skema Informasi VIEWS
Anda dapat menggunakan VIEWS tampilan skema informasi untuk mendapatkan daftar semua tampilan yang ditentukan pengguna dalam database.
USE Music; SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS;
Hasil:
+----------------+--------------+ | TABLE_SCHEMA | TABLE_NAME | |----------------+--------------| | dbo | RockAlbums | | dbo | JazzAlbums | | dbo | BluesAlbums | +----------------+--------------+
Kembalikan Definisi Tampilan
INFORMATION_SCHEMA.VIEWS tampilan juga memiliki VIEW_DEFINITION kolom, sehingga Anda dapat dengan mudah mengembalikan definisi setiap tampilan jika diperlukan.
SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS;
Opsi 2 – Tampilan Katalog Sistem sys.views
Cara lain untuk mengembalikan daftar tampilan adalah dengan menanyakan sys.views tampilan katalog sistem.
USE Music; SELECT SCHEMA_NAME(schema_id) AS [Schema], Name FROM sys.views;
Hasil:
+----------+-------------+ | Schema | Name | |----------+-------------| | dbo | RockAlbums | | dbo | JazzAlbums | | dbo | BluesAlbums | +----------+-------------+
Kembalikan Definisi Tampilan
sys.view tampilan tidak menyertakan kolom untuk definisi objek. Jika Anda ingin mengembalikan definisi setiap tampilan, Anda dapat menggabungkannya dengan sys.sql_modules tampilan sistem.
Contoh:
SELECT definition FROM sys.views v INNER JOIN sys.sql_modules m ON v.object_id = m.object_id;
Opsi 3 – Tampilan Katalog Sistem sys.objects
Cara lain untuk mengembalikan daftar tampilan adalah dengan menanyakan sys.objects tampilan katalog sistem.
SELECT SCHEMA_NAME(schema_id) AS [Schema], name FROM sys.objects WHERE type = 'V';
Hasil:
+----------+-------------+ | Schema | name | |----------+-------------| | dbo | RockAlbums | | dbo | JazzAlbums | | dbo | BluesAlbums | +----------+-------------+
Jenis V adalah untuk "Tampilan". Cara lain untuk melakukannya adalah memfilter menurut type_desc kolom:
SELECT SCHEMA_NAME(schema_id) AS [Schema], name FROM sys.objects WHERE type_desc = 'VIEW';
Kembalikan Definisi Tampilan
sys.objects tampilan tidak menyertakan kolom untuk definisi objek. Jika Anda ingin mengembalikan definisi setiap tampilan, Anda dapat menggabungkannya dengan sys.sql_modules tampilan sistem.
Contoh:
SELECT definition FROM sys.objects o INNER JOIN sys.sql_modules m ON o.object_id = m.object_id WHERE type = 'V';
Opsi 4 – Prosedur Tersimpan sp_tables
sp_tables prosedur tersimpan mengembalikan daftar objek yang dapat ditanyakan di lingkungan saat ini. Ini termasuk tabel atau tampilan apa pun, kecuali objek sinonim.
Anda dapat mempersempit hasil menjadi hanya tampilan dengan @table_type parameter. Anda juga dapat mempersempitnya menjadi hanya pemilik atau katalog tertentu.
Menjalankan kode berikut akan mengembalikan semua tampilan dalam database saat ini – termasuk tampilan sistem.
EXEC sp_tables @table_type = "'VIEW'";
Saya tidak akan mempresentasikan hasilnya di sini karena daftarnya panjang.
Ini dipersempit menjadi pemilik basis data tertentu:
EXEC sp_tables @table_owner = 'dbo', @table_type = "'VIEW'";
Hasil:
+-------------------+---------------+--------------+--------------+-----------+ | TABLE_QUALIFIER | TABLE_OWNER | TABLE_NAME | TABLE_TYPE | REMARKS | |-------------------+---------------+--------------+--------------+-----------| | Music | dbo | BluesAlbums | VIEW | NULL | | Music | dbo | JazzAlbums | VIEW | NULL | | Music | dbo | RockAlbums | VIEW | NULL | +-------------------+---------------+--------------+--------------+-----------+