Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

5 cách đếm số lượng bảng do người dùng xác định trong cơ sở dữ liệu máy chủ SQL

Dưới đây là năm phương pháp bạn có thể sử dụng để nhanh chóng xác định có bao nhiêu bảng do người dùng xác định trong cơ sở dữ liệu hiện tại trong SQL Server.

Tất cả năm tùy chọn đều sử dụng COUNT() hàm để lấy số đếm. Rõ ràng, bạn có thể thay thế dấu hoa thị (* ) hoặc tên của các cột để trả về danh sách tất cả các bảng do người dùng xác định.

Tùy chọn 1 - sys.tables

Cách rõ ràng nhất để làm điều này là truy vấn sys.tables xem danh mục hệ thống. Toàn bộ mục đích của chế độ xem này là trả về một hàng cho mỗi bảng người dùng, vì vậy đó chính xác là những gì chúng tôi cần.

USE WideWorldImportersDW;
SELECT COUNT(*) AS [Number of User Tables]
FROM sys.tables;

Kết quả:

+-------------------------+
| Number of User Tables   |
|-------------------------|
| 29                      |
+-------------------------+

Trong trường hợp này, tôi trả về số lượng bảng người dùng từ WideWorldImportersDW cơ sở dữ liệu.

Nếu tôi chuyển sang cơ sở dữ liệu khác, tôi nhận được kết quả khác:

USE Music;
SELECT COUNT(*) AS [Number of User Tables]
FROM sys.tables;

Kết quả:

+-------------------------+
| Number of User Tables   |
|-------------------------|
| 4                       |
+-------------------------+

Như đã đề cập, bạn có thể liệt kê các bảng chỉ bằng cách thay thế COUNT(*) dòng có dấu hoa thị (* ) hoặc tên của các cột:

USE Music;
SELECT name
FROM sys.tables;

Kết quả:

+---------+
| name    |
|---------|
| Artists |
| Genres  |
| Albums  |
| Country |
+---------+

Tùy chọn 2 - Lọc sys.objects theo loại

Một tùy chọn khác là truy vấn sys.objects xem danh mục.

USE Music;
SELECT COUNT(*) AS [Number of User Tables]
FROM sys.objects 
WHERE type = 'U';

Kết quả:

+-------------------------+
| Number of User Tables   |
|-------------------------|
| 4                       |
+-------------------------+

Trong trường hợp này, bạn cần lọc theo type = 'U' (U dành cho “Bảng người dùng”).

Tùy chọn 3 - Lọc sys.objects theo "Loại mô tả"

Một cách khác để truy vấn sys.objects xem là lọc kết quả theo type_desc cột.

USE Music;
SELECT COUNT(*) AS [Number of User Tables]
FROM sys.objects 
WHERE type_desc = 'USER_TABLE';

Kết quả:

+-------------------------+
| Number of User Tables   |
|-------------------------|
| 4                       |
+-------------------------+

Tùy chọn 4 - Lọc sys.objects bằng cách sử dụng hàm OBJECTPROPERTY ()

Bạn cũng có thể sử dụng OBJECTPROPERTY() chức năng trong WHERE của bạn mệnh đề.

Hàm này chấp nhận hai đối số:một ID đối tượng và một thuộc tính. ID đối tượng có thể là ID bảng và thuộc tính có thể là IsUserTable , xác định đối tượng có phải là bảng hệ thống hay không.

Do đó, bạn có thể làm như sau:

USE Music;
SELECT COUNT(*) AS [Number of User Tables]
FROM sys.objects 
WHERE OBJECTPROPERTY(object_id, 'IsUserTable') = 1;

Kết quả:

+-------------------------+
| Number of User Tables   |
|-------------------------|
| 4                       |
+-------------------------+

Tùy chọn 5 - INFORMATION_SCHEMA.TABLES

Tùy chọn này truy vấn INFORMATION_SCHEMA.TABLES chế độ xem lược đồ thông tin. Dạng xem này trả về cả dạng xem và bảng, vì vậy bạn cần lọc theo TABLE_TYPE = 'BASE TABLE' để chỉ trả về các bảng.

USE Music;
SELECT COUNT(*) AS [Number of User Tables]
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE';

Kết quả:

+-------------------------+
| Number of User Tables   |
|-------------------------|
| 4                       |
+-------------------------+

Nếu bạn cần tìm số lượng bảng hệ thống, hãy xem 3 cách đếm số bảng hệ thống trong 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. Tìm tất cả các bảng chứa cột có tên được chỉ định - MS SQL Server

  2. Cách bật Ràng buộc KIỂM TRA trong SQL Server (Ví dụ T-SQL)

  3. Cập nhật cấu hình thư cơ sở dữ liệu (SSMS)

  4. SQL Server 2016:Trình thiết kế truy vấn

  5. THIẾT LẬP TEXTSIZE không hoạt động trong SQL Server? Kiểm tra điều này.