Khi thao tác với cơ sở dữ liệu (database) trên SQL Server hay bất cứ DBMS nào khác đi nữa, sẽ có đôi lúc cần đếm xem hiện tại database đang có bao nhiêu bảng. Sẽ ra sao nếu bạn có một database khủng với số lượng bảng khổng lồ, đếm thủ công là một cách làm rất không ổn. Trong SQL Server, bạn có thể đếm số bảng của database chỉ với những đoạn truy vấn đơn giản. Bắt đầu thôi nào!

Cách đếm số bảng của database

Để thực hiện được các ví dụ về cách đếm số bảng có trong 1 cơ sở dữ liệu bất kỳ. Mình sẽ sử dụng một cơ sở dữ liệu mẫu, cụ thể đó là AdventureWorks2019. Bạn có thể tải nó tại đây: AdventureWorks sample databases.

Cở sở dữ liệu AdventureWorks2019.

* Giải thích cách đếm số bảng của 1 CSDL.

Mình sẽ có 1 đoạn truy vấn như sau (truy vấn 1):

USE [AdventureWorks2019]
SELECT * FROM INFORMATION_SCHEMA.TABLES

Đoạn truy vấn sẽ được thực thi như sau:

– Chọn cơ sở dữ liệu (database) sẽ thực thi truy vấn.

– Lấy ra dữ liệu từ INFORMATION_SCHEMA.TABLES, thông tin bao gồm tên CSDL (TABLE_CATALOG), tên schema (TABLE_SCHEMA), tên bảng (TABLE_NAME) và loại bảng (TABLE_TYPE).

Kết quả sau khi thực thi câu truy vấn:

Kết quả sau khi thực thi truy vấn 1.

Bạn có thể thấy rằng, tại cột loại bảng (TABLE_TYPE) có những bảng sẽ có loại là BASE TABLE, ngược lại VIEW.

  • BASE TABLE: Đúng như cái tên, đây là các bảng cơ sở.
  • VIEW: Bảng ảo, nó được tạo ra bởi truy vấn kết hợp 1 hoặc nhiều bảng.

* Hoàn thiện câu truy vấn.

Từ phần giải thích ở trên, để đếm được số bảng thì bạn chỉ cần dùng count(*), có thể kết hợp thêm where nếu chỉ muốn đếm BASE TABLE hoặc VIEW.

Dưới đây là đoạn truy vấn của mình (truy vấn 2)

USE [AdventureWorks2019]

SELECT COUNT(*) AS TABLE_COUNT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'

Kết quả sau khi thực thi câu truy vấn (chỉ đếm BASE TABLE):

đếm số bảng của database
Kết quả sau khi thực thi truy vấn 2.

Lời kết

Qua bài viết này, bạn đã có thể đếm được số lượng bảng có trong 1 cơ sở dữ liệu (database) chỉ với những câu truy vấn đơn giản. Không những thế, bạn có thể vận dụng để thực hiện việc lấy danh sách các bảng trong database, danh sách schema,các bảng theo schema nào đó,…

Cuối cùng, cảm ơn bạn đã đọc hết bài viết này, nếu bạn có vấn đề cần giải đáp, hãy để lại bình luận cho mình nhé!

Được gắn thẻ: