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

Bảng danh sách máy chủ SQL:Cách hiển thị tất cả các bảng

Tùy thuộc vào phiên bản SQL Server bạn đang chạy, phương pháp truy vấn và trả về danh sách tất cả các bảng do người dùng tạo có thể hơi khác nhau. Dưới đây, chúng tôi sẽ xem xét ngắn gọn các câu lệnh TSQL có thể được sử dụng để truy xuất danh sách bảng cho cả SQL Server 2000 cũ hơn và phiên bản 2005 mới hơn hoặc hơn thế nữa.

Bảng danh sách trong SQL Server 2000

Đối với các phiên bản SQL Server cũ hơn (chẳng hạn như SQL Server 2000, mặc dù phương pháp này cũng được hỗ trợ trong SQL Server 2005 để tương thích ngược), bạn sẽ cần truy vấn SYS.SYSOBJECTS chế độ xem siêu dữ liệu. SYS.SYSOBJECTS chứa một hàng cho mọi đối tượng đã được tạo trong cơ sở dữ liệu, bao gồm stored procedures , viewsuser tables (là một điều quan trọng để phân biệt với system tables .)

SYSOBJECTS bảng chứa vài chục cột dữ liệu vì nó phải chứa thông tin về hầu như mọi thứ được thêm vào máy chủ theo thời gian. Do đó, để tìm danh sách các bảng do người dùng tạo (do đó bỏ qua system tables ), chúng tôi sẽ cần tìm kết quả trong đó xtype cột (chỉ định loại đối tượng object type cho hàng đó) bằng giá trị U , viết tắt của user tables . Câu lệnh TSQL kết quả sẽ giống như sau:

SELECT
  *
FROM
  SYSOBJECTS
WHERE
  xtype = 'U';
GO

Lưu ý:Vì SYSOBJECTS là một phần của SYS không gian tên, khi truy vấn SYSOBJECTS không cần thiết phải chỉ định SYSOBJECTS đó là một phần của SYS toàn cầu không gian tên, vì vậy chúng tôi có thể bỏ qua nó như được hiển thị trong ví dụ trên.

Thao tác này sẽ trả về danh sách kết quả của tất cả các bảng do người dùng tạo. Vì lượng thông tin trả về khi truy vấn tất cả các cột là khá lớn, bạn có thể muốn cắt bớt kết quả bằng cách chỉ xem name và có lẽ là crdate (ngày tạo):

SELECT
  name,
  crdate
FROM
  SYSOBJECTS
WHERE
  xtype = 'U';
GO

Bảng danh sách trong SQL Server 2005 hoặc mới hơn

Liệt kê tất cả các bảng trong máy chủ SQL khi sử dụng phiên bản mới hơn (SQL 2005 trở lên) là vấn đề của việc truy vấn INFORMATION_SCHEMA các khung nhìn được tự động tích hợp vào SQL Server. Những điều này cho phép bạn dễ dàng xem nhiều loại siêu dữ liệu cho phiên bản SQL Server cụ thể này, bao gồm thông tin về COLUMNS , ROUTINES và thậm chí cả TABLES .

Bạn có thể nhận thấy rằng có bốn cột được trả về khi sử dụng INFORMATION_SCHEMA.TABLES nhưng cột quan trọng nhất là TABLE_TYPE , xác định xem bảng trong hàng đó có phải là một bảng thực tế hay không (BASE TABLE ) hoặc một chế độ xem (VIEW ).

Để trả về tất cả các bảng xem trong một truy vấn, thực hiện câu lệnh TSQL sau:

SELECT
  *
FROM
  INFORMATION_SCHEMA.TABLES;
GO

Cũng có thể là khôn ngoan khi chỉ định cơ sở dữ liệu bạn muốn truy vấn:

SELECT
  *
FROM
  databaseName.INFORMATION_SCHEMA.TABLES;
GO

Nếu bạn chỉ muốn truy xuất các bảng thực tế và lọc ra các dạng xem từ kết quả, hãy thêm WHERE TABLE_TYPE = 'BASE TABLE' mệnh đề:

SELECT
  *
FROM
  databaseName.INFORMATION_SCHEMA.TABLES
WHERE
  TABLE_TYPE = 'BASE TABLE';
GO

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Câu lệnh CASE trong mệnh đề WHERE trong SQL Server 2008

  2. Các trường hợp sử dụng cho câu lệnh MERGE của máy chủ SQL:Đồng bộ hóa bảng lịch sử và trực tuyến

  3. Cách xóa tài khoản thư cơ sở dữ liệu khỏi hồ sơ trong SQL Server (T-SQL)

  4. Chèn hàng loạt SQL Server - Phần 1

  5. 7645 Vị ngữ toàn văn bản rỗng hoặc trống