Berikut adalah artikel yang menyajikan tiga cara untuk menentukan dengan cepat berapa banyak tabel sistem dalam database saat ini di SQL Server.
Ketiga opsi menggunakan COUNT()
berfungsi saat menanyakan sys.objects
tampilan katalog sistem. Semuanya menghasilkan output yang sama, jadi Anda benar-benar tidak perlu melewati opsi pertama. Tapi saya akan tetap mencantumkannya.
Opsi 1 – Berdasarkan Jenis
Cara paling ringkas untuk melakukannya adalah memfilter menurut type
kolom.
USE Music; SELECT COUNT(*) AS [Number of System Tables] FROM sys.objects WHERE type = 'S';
Hasil:
+---------------------------+ | Number of System Tables | |---------------------------| | 72 | +---------------------------+
Di sini, saya memfilter berdasarkan type
dari S
. S
singkatan dari "Tabel dasar sistem".
Jika saya beralih ke master database, saya mendapatkan hasil yang berbeda:
USE Master; SELECT COUNT(*) AS [Number of System Tables] FROM sys.objects WHERE type = 'S';
Hasil:
+---------------------------+ | Number of System Tables | |---------------------------| | 79 | +---------------------------+
Ini karena master database berisi beberapa tabel sistem yang tidak ada di database lain.
Kita dapat menjalankan kueri berikut untuk mendapatkan nama:
USE master; SELECT name FROM sys.objects WHERE type = 'S' AND name NOT IN ( SELECT name FROM model.sys.objects WHERE type = 'S' );
Hasil:
+--------------------------+ | name | |--------------------------| | sysextendedrecoveryforks | | syslogshippers | | sysmatrixageforget | | sysmatrixages | | sysmatrixbricks | | sysmatrixconfig | | sysmatrixmanagers | +--------------------------+
Dalam hal ini saya membandingkan master database ke model basis data. Anda dapat secara eksplisit menentukan database yang berbeda dengan menukar model
dengan nama database lainnya.
Opsi 2 – Dengan “Jenis Deskripsi”
Pilihan lainnya adalah memfilter menurut type_desc
kolom alih-alih type
kolom.
USE Music; SELECT COUNT(*) AS [Number of System Tables] FROM sys.objects WHERE type_desc = 'SYSTEM_TABLE';
Hasil:
+---------------------------+ | Number of System Tables | |---------------------------| | 72 | +---------------------------+
Opsi 3 – Oleh OBJECTPROPERTY()
Jika karena alasan tertentu Anda menemukan dua opsi sebelumnya tidak sesuai, Anda dapat mencoba menggunakan OBJECTPROPERTY()
fungsi.
Fungsi ini menerima dua argumen:ID objek dan properti. ID objek dapat berupa ID tabel dan propertinya dapat berupa IsSystemTable
, yang menentukan apakah objek adalah tabel sistem atau bukan.
Oleh karena itu, Anda dapat melakukan sesuatu seperti ini:
USE Music; SELECT COUNT(*) AS [Number of System Tables] FROM sys.objects WHERE OBJECTPROPERTY(object_id, 'IsSystemTable') = 1;
Hasil:
+---------------------------+ | Number of System Tables | |---------------------------| | 72 | +---------------------------+
Daftar Tabel
Anda dapat mengubah tiga opsi jika ingin membuat daftar tabel, bukan hanya menghitungnya. Untuk melakukannya, cukup ganti COUNT(*) AS [Number of User Tables]
dengan *
. Atau, Anda dapat secara eksplisit memberi nama kolom yang ingin Anda kembalikan.
Hitung Tabel Buatan Pengguna
Jika Anda perlu mengetahui jumlah pengguna tabel, lihat 5 Cara Menghitung Jumlah Tabel Buatan Pengguna di SQL Server.