Làm cách nào để tôi có thể thực hiện tương đương với "SHOW TABLES" trong T-SQL?


31

Tôi muốn thực hiện tra cứu các bảng trong cơ sở dữ liệu SQL Server 2005 Express dựa trên tên bảng. Trong MySQL Tôi sẽ sử dụng SHOW TABLES LIKE "Datasheet%", nhưng trong T-SQL điều này sẽ ném một lỗi (nó cố gắng tìm kiếm một thủ tục được lưu trữ SHOW và không thành công).

Điều này có thể thực hiện được không và nếu có thì làm cách nào?

32

này sẽ cung cấp cho bạn một danh sách các bảng trong cơ sở dữ liệu hiện hành:

Select Table_name as "Table name" 
From Information_schema.Tables 
Where Table_type = 'BASE TABLE' and Objectproperty 
(Object_id(Table_name), 'IsMsShipped') = 0 

Một số hữu ích bit T-SQL khác có thể tìm thấy ở đây: http://www.devx.com/tips/Tip/28529


5

Hãy thử điều này:

select * from information_schema.columns 
where table_name = 'yourTableName' 

cũng tìm kiếm information_schema quan điểm khác.


7

Hãy thử điều này

SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME LIKE 'Datasheet%' 

2

Hãy thử sau

SELECT table_name 
FROM information_schema.tables 
WHERE 
table_name LIKE 'Datasheet%' 

40

Tôi biết bạn đã chấp nhận câu trả lời, nhưng tại sao không chỉ sử dụng đơn giản hơn nhiều sp_tables?

sp_tables 'Database_Name' 
  0

Đây là giải pháp tốt hơn nhiều - tôi thực sự có thể ghi nhớ nó! Cảm ơn 26 jun. 152015-06-26 14:00:35


1

MS đang dần loại bỏ các phương thức khác ngoài information_schema lượt xem. vì vậy khả năng tương thích về phía trước luôn sử dụng chúng.


3

Và, kể từ INFORMATION_SCHEMA is part of the SQL-92 standard, nhiều cơ sở dữ liệu tốt hỗ trợ nó - bao gồm MySQL.


1

Thử:

SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME LIKE '%' 

4

Hãy thử điều này:

USE your_database 
go 
Sp_tables 
go 

0

Tôi biết đây là một câu hỏi cũ nhưng tôi vừa mới đi qua nó.

Thông thường tôi sẽ nói truy cập vào khung nhìn information_schema.tables, nhưng khi tìm ra PDO không thể truy cập cơ sở dữ liệu đó từ một đối tượng dữ liệu khác mà tôi cần tìm một cách khác. Có vẻ như sp_tables 'Database_Name là cách tốt hơn khi sử dụng người dùng hoặc PDO không có đặc quyền.