テーブル名に基づいて、SQL Server 2005 Expressデータベース内のテーブルを検索したいと思います。 MySQL
ではSHOW TABLES LIKE "Datasheet%"
を使用しますが、T-SQL
ではエラーがスローされます(SHOW
ストアドプロシージャを検索しようとして失敗します)。
これは可能ですか?
これにより、現在のデータベース内のテーブルのリストが表示されます。
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
すでに回答を受け入れていることは承知していますが、なぜもっと単純な sp_tables を使用しないのですか?
sp_tables 'Database_Name'
これを試して:
USE your_database
go
Sp_tables
go
これを試して
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE 'Datasheet%'
これを試して :
select * from information_schema.columns
where table_name = 'yourTableName'
他のinformation_schema
ビューも探します。
そして、 INFORMATION_SCHEMAはSQL-92標準の一部 であるため、多くのデータベースが MySQL を含めてサポートしています。
フォローしてみてください
SELECT table_name
FROM information_schema.tables
WHERE
table_name LIKE 'Datasheet%'
それを試してみてください :
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE '%'
TABLE NAMEを知らない人は、上記の回答に従って結果を取得できません。
これを試して
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='dbo';
MS
は、information_schema
ビュー以外のメソッドを徐々に廃止しています。そのため、前方互換性のために常にそれらを使用します。
これは古い質問であることは知っていますが、私はちょうどそれを見つけました。
通常、information_schema.tablesビューにアクセスすると言いますが、PDOを見つけると、異なるデータオブジェクトからそのデータベースにアクセスできないため、別の方法を見つける必要がありました。 sp_tables 'Database_Name
は、非特権ユーザーまたはPDOを使用する場合のより良い方法です。