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

3 Cara Menghitung Jumlah Tabel Sistem dalam Database SQL Server

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DB_NAME() vs ORIGINAL_DB_NAME() di SQL Server:Apa Bedanya?

  2. Ubah 'waktu' menjadi 'waktu kecil' di SQL Server (Contoh T-SQL)

  3. Memahami Pernyataan DROP TABLE di SQL Server

  4. Mengapa cast/convert dari int mengembalikan tanda bintang

  5. Agregasi String Selama Bertahun-tahun di SQL Server