Tiga dari tampilan katalog sistem di SQL Server termasuk sys.views
, sys.system_views
, dan sys.all_views
.
Ketiga tampilan katalog ini semuanya menyediakan metadata tentang tampilan dalam database, tetapi ada perbedaan tipis antara setiap tampilan.
Inilah yang dilakukan masing-masing:
sys.views
- Mengembalikan semua tampilan yang ditentukan pengguna.
sys.system_views
- Mengembalikan semua tampilan sistem yang dikirimkan dengan SQL Server.
sys.all_views
- Menampilkan semua tampilan yang ditentukan pengguna dan sistem.
Dengan kata lain, tampilan terakhir menggabungkan hasil dari dua tampilan sebelumnya (mengembalikan kedua sistem dan tampilan yang ditentukan pengguna).
Contoh
Berikut adalah contoh yang menunjukkan perbedaan hasil yang ditampilkan oleh tampilan ini.
USE Music; SELECT COUNT(*) AS [User Defined] FROM sys.views; SELECT COUNT(*) AS [System] FROM sys.system_views; SELECT COUNT(*) AS [All Views] FROM sys.all_views;
Hasil:
+----------------+ | User Defined | |----------------| | 3 | +----------------+ (1 row affected) +----------+ | System | |----------| | 494 | +----------+ (1 row affected) +-------------+ | All Views | |-------------| | 497 | +-------------+ (1 row affected)
Jika kita menambahkan hasil dari dua kueri pertama bersama-sama, kita mendapatkan hasil yang sama sebagai sys.all_views
:
USE Music; SELECT (SELECT COUNT(*) FROM sys.views) + (SELECT COUNT(*) FROM sys.system_views) AS Result;
Hasil:
+----------+ | Result | |----------| | 497 | +----------+