Di bawah ini adalah lima metode yang dapat Anda gunakan untuk menentukan dengan cepat berapa banyak tabel yang ditentukan pengguna dalam database saat ini di SQL Server.
Kelima opsi menggunakan COUNT()
berfungsi untuk mendapatkan hitungan. Jelas, Anda dapat menggantinya dengan tanda bintang (*
), atau nama kolom untuk menampilkan daftar semua tabel yang ditentukan pengguna.
Opsi 1 – sys.tables
Cara paling jelas untuk melakukannya adalah dengan menanyakan sys.tables
tampilan katalog sistem. Tujuan keseluruhan dari tampilan ini adalah untuk mengembalikan baris untuk setiap tabel pengguna, jadi itulah yang kami butuhkan.
USE WideWorldImportersDW; SELECT COUNT(*) AS [Number of User Tables] FROM sys.tables;
Hasil:
+-------------------------+ | Number of User Tables | |-------------------------| | 29 | +-------------------------+
Dalam hal ini saya mengembalikan jumlah tabel pengguna dari WideWorldImportersDW
basis data.
Jika saya beralih ke database lain, saya mendapatkan hasil yang berbeda:
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM sys.tables;
Hasil:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
Seperti disebutkan, Anda dapat membuat daftar tabel hanya dengan mengganti COUNT(*)
baris dengan tanda bintang (*
) atau nama kolom:
USE Music; SELECT name FROM sys.tables;
Hasil:
+---------+ | name | |---------| | Artists | | Genres | | Albums | | Country | +---------+
Opsi 2 – Filter sys.objects Berdasarkan Jenis
Opsi lainnya adalah menanyakan sys.objects
tampilan katalog.
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM sys.objects WHERE type = 'U';
Hasil:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
Dalam hal ini Anda perlu memfilter menurut type = 'U'
(U
adalah untuk “Tabel Pengguna”).
Opsi 3 – Filter sys.objects Dengan “Jenis Deskripsi”
Cara lain untuk menanyakan sys.objects
tampilan adalah untuk memfilter hasil dengan type_desc
kolom.
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM sys.objects WHERE type_desc = 'USER_TABLE';
Hasil:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
Opsi 4 – Filter sys.objects Dengan Menggunakan Fungsi OBJECTPROPERTY()
Anda juga dapat menggunakan OBJECTPROPERTY()
berfungsi di WHERE
. Anda ayat.
Fungsi ini menerima dua argumen:ID objek dan properti. ID objek dapat berupa ID tabel dan propertinya dapat berupa IsUserTable
, 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 User Tables] FROM sys.objects WHERE OBJECTPROPERTY(object_id, 'IsUserTable') = 1;
Hasil:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
Opsi 5 – INFORMATION_SCHEMA.TABLES
Opsi ini menanyakan INFORMATION_SCHEMA.TABLES
tampilan skema informasi. Tampilan ini mengembalikan tampilan dan tabel, jadi Anda perlu memfilter menurut TABLE_TYPE = 'BASE TABLE'
untuk mengembalikan tabel saja.
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';
Hasil:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
Jika Anda perlu mengetahui jumlah tabel sistem, lihat 3 Cara Menghitung Jumlah Tabel Sistem di SQL Server.