Câu trả lời:
Tôi đang sử dụng cái này và hoạt động tốt
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE '%%'
select name
from DBname.sys.tables
where name like '%xxx%'
and is_ms_shipped = 0; -- << comment out if you really want to see them
and is_ms_shipped = 0;
dường như không làm được gì nhiều
Nếu bạn muốn xem tất cả các bảng trong tất cả các Cơ sở dữ liệu trên toàn máy chủ và nhận được kết quả, bạn có thể sử dụng thủ tục sp_MSforeachdb không có tài liệu :
sp_MSforeachdb 'SELECT "?" AS DB, * FROM [?].sys.tables WHERE name like ''%Table_Names%'''
Tôi giả sử bạn muốn chuyển tên cơ sở dữ liệu dưới dạng tham số và không chỉ chạy:
SELECT *
FROM DBName.sys.tables
WHERE Name LIKE '%XXX%'
Nếu vậy, bạn có thể sử dụng SQL động để thêm dbname vào truy vấn:
DECLARE @DBName NVARCHAR(200) = 'YourDBName',
@TableName NVARCHAR(200) = 'SomeString';
IF NOT EXISTS (SELECT 1 FROM master.sys.databases WHERE Name = @DBName)
BEGIN
PRINT 'DATABASE NOT FOUND';
RETURN;
END;
DECLARE @SQL NVARCHAR(MAX) = ' SELECT Name
FROM ' + QUOTENAME(@DBName) + '.sys.tables
WHERE Name LIKE ''%'' + @Table + ''%''';
EXECUTE SP_EXECUTESQL @SQL, N'@Table NVARCHAR(200)', @TableName;
Bạn cũng có thể sử dụng nút Bộ lọc để lọc các bảng có một chuỗi nhất định trong đó. Bạn có thể làm tương tự với các thủ tục và dạng xem được lưu trữ.
Thêm vào câu trả lời của @ [RichardTheKiwi].
Bất cứ khi nào tôi tìm kiếm danh sách các bảng, nói chung tôi muốn chọn từ tất cả chúng hoặc xóa chúng. Dưới đây là một tập lệnh tạo các tập lệnh đó cho bạn.
Tập lệnh chọn được tạo cũng thêm cột Tên bảng để bạn biết mình đang xem bảng nào:
select 'select ''' + name + ''' as TableName, * from ' + name as SelectTable,
'delete from ' + name as DeleteTable
from sys.tables
where name like '%xxxx%'
and is_ms_shipped = 0;
bạn cũng có thể sử dụng lệnh show.
show tables like '%tableName%'
Tôi muốn đăng một giải pháp đơn giản cho mọi lược đồ bạn có. Nếu bạn đang sử dụng MySQL DB, bạn có thể chỉ cần lấy từ lược đồ của mình tất cả tên của bảng và thêm điều kiện WHERE-LIKE trên đó. Bạn cũng có thể làm điều đó với dòng lệnh thông thường như sau:
SHOW TABLES WHERE tables_in_<your_shcema_name> LIKE '%<table_partial_name>%';
nơi tables_in_<your_shcema_name>
trả về tên SHOW TABLES
lệnh của cột .