Как я могу сделать эквивалент "SHOW TABLES" в T-SQL?
Я хотел бы выполнить поиск таблиц в моей базе данных SQL Server 2005 Express на основе имени таблицы. В MySQL
я использовал бы SHOW TABLES LIKE "Datasheet%"
, но в T-SQL
это вызывает ошибку (он пытается искать хранимую процедуру SHOW
и не работает).
Возможно ли это, и если да, то как?
Ответы
Ответ 1
Это даст вам список таблиц в текущей базе данных:
Select Table_name as "Table name"
From Information_schema.Tables
Where Table_type = 'BASE TABLE' and Objectproperty
(Object_id(Table_name), 'IsMsShipped') = 0
Некоторые другие полезные биты T-SQL можно найти здесь: http://www.devx.com/tips/Tip/28529
Ответ 2
Я знаю, что вы уже приняли ответ, но почему бы просто не использовать гораздо более простой sp_tables?
sp_tables 'Database_Name'
Ответ 3
Попробуйте следующее:
USE your_database
go
Sp_tables
go
Ответ 4
Попробуйте это
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE 'Datasheet%'
Ответ 5
Попробуйте следующее:
select * from information_schema.columns
where table_name = 'yourTableName'
также ищите другие представления information_schema
.
Ответ 6
И, поскольку INFORMATION_SCHEMA является частью стандарта SQL-92, многие базы данных поддерживают его, включая MySQL.
Ответ 7
Попробуйте выполнить
SELECT table_name
FROM information_schema.tables
WHERE
table_name LIKE 'Datasheet%'
Ответ 8
MS
медленно отменяет методы, отличные от представлений information_schema
. поэтому для прямой совместимости всегда используйте их.
Ответ 9
Попробуйте:
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE '%'
Ответ 10
Я знаю, что это старый вопрос, но я только что наткнулся на него.
Обычно я хотел бы получить доступ к представлению information_schema.tables, но, узнав, что PDO не может получить доступ к этой базе данных из другого объекта данных, мне нужно было найти другой способ. Похоже, что sp_tables 'Database_Name
- лучший способ использования не привилегированного пользователя или PDO.
Ответ 11
Тот, кто не знает ИМЯ ТАБЛИЦЫ, не сможет получить результат согласно приведенным выше ответам.
ПОПРОБУЙ ЭТО
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='dbo';