sql-server - 使用 - sql server 容量



TSQLを使用してデータベース内のすべてのテーブルのリストを取得するにはどうすればよいですか? (12)

Ray Vegaのおかげで、その応答はデータベース内のすべてのユーザーテーブルを提供します...

exec sp_msforeachtable 'print' '?' ''

sp_helptextは、要約する根底にあるクエリを示しています...

select * from dbo.sysobjects o 
join sys.all_objects syso on o.id =  syso.object_id  
where OBJECTPROPERTY(o.id, 'IsUserTable') = 1 
and o.category & 2 = 0 

https://ffff65535.com

SQL Server上の特定のデータベースにあるすべてのテーブルの名前を取得する最善の方法は何ですか?


SQL Server 2005、2008、2012、2014または2016:

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

特定のデータベースのテーブルのみを表示するには

SELECT TABLE_NAME FROM <DATABASE_NAME>.INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'

または、

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG='dbName' --(for MySql, use: TABLE_SCHEMA='dbName' )

PS:SQL Server 2000の場合:

SELECT * FROM sysobjects WHERE xtype='U' 

INFORMATION_SCHEMA.TABLESの欠点は、 dtpropertiesMSpeer_...テーブルなどのシステムテーブルも含まれているため、独自のテーブルから区別することはできません。

sys.objects (非推奨のsysobjectsビューの新しいバージョン)を使用することをお勧めします。これはシステムテーブルを除外することをサポートしています:

select *
from sys.objects
where type = 'U'      -- User tables
and is_ms_shipped = 0 -- Exclude system tables

select * from sysobjects where xtype='U'


最初にデータベースを選択するだけです

use database_name;

ちょうどタイプしてください

show tables;

--for oracle
select tablespace_name, table_name from all_tables;

このリンクは、このtopicに関するさらに多くの情報を提供することができます


SELECT * FROM information_schema.tables
where TABLE_TYPE = 'BASE TABLE'

SQL Server 2012


SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE='BASE TABLE' 
ORDER BY TABLE_NAME

SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'

次のような他のオブジェクトタイプも検索できます。

  • AF:集計関数(CLR)
  • C:CHECK制約
  • D:デフォルトまたはDEFAULT制約
  • F:FOREIGN KEY制約
  • L:ログ
  • FN:スカラー関数
  • FS:アセンブリ(CLR)スカラー関数
  • FT:アセンブリ(CLR)のテーブル値関数
  • IF:インライン・テーブル関数
  • IT:内部テーブル
  • P:ストアドプロシージャ
  • PC:アセンブリ(CLR)ストアドプロシージャ
  • PK:PRIMARY KEY制約(タイプはK)
  • RF:レプリケーションフィルタストアドプロシージャ
  • S:システムテーブル
  • SN:同義語
  • SQ:サービスキュー
  • TA:アセンブリ(CLR)DMLトリガー
  • TF:テーブル関数
  • TR:SQL DMLトリガー
  • TT:テーブルタイプ
  • U:ユーザーテーブル
  • UQ:UNIQUE制約(タイプはK)
  • V:ビュー
  • X:拡張ストアドプロシージャ

SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U' 

exec sp_msforeachtable 'print ''?'''

select * from sys.tables;

または

SELECT * FROM INFORMATION_SCHEMA.TABLES 

または

SELECT * FROM sysobjects WHERE xtype='U'




database-table