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 | +-------------------+---------------+--------------+--------------+-----------+