Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

4 Cara Mendaftar Semua Tampilan di Database SQL Server

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menyimpan direktori / hierarki / struktur pohon dalam database?

  2. Trik untuk Peningkatan Pemantauan Basis Data Berkelanjutan

  3. Bagaimana saya bisa mendapatkan nama kolom dari tabel di SQL Server?

  4. 3 Cara Mengonversi Integer ke Desimal di SQL Server

  5. Bagaimana Fungsi CHAR() Bekerja di SQL Server (T-SQL)