SQL Server 上の特定のデータベース内のすべてのテーブルの名前を取得する最良の方法は何ですか?
1962466 次
19 に答える
1573
SQL Server 2000、2005、2008、2012、2014、2016、2017 または 2019:
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'
于 2008-10-06T18:00:56.227 に答える
204
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: 拡張ストアド プロシージャ
于 2008-10-06T18:02:10.140 に答える
101
SELECT * FROM INFORMATION_SCHEMA.TABLES
また
SELECT * FROM Sys.Tables
于 2008-10-06T17:58:19.180 に答える
31
USE YourDBName
GO
SELECT *
FROM sys.Tables
GO
また
USE YourDBName
GO
SELECT * FROM INFORMATION_SCHEMA.TABLES
GO
于 2013-10-03T11:23:34.820 に答える
9
exec sp_msforeachtable 'print ''?'''
于 2008-10-06T17:53:54.727 に答える
9
select * from sysobjects where xtype='U'
于 2008-10-06T17:55:21.900 に答える
9
SELECT name
FROM sysobjects
WHERE xtype='U'
ORDER BY name;
(SQL Server 2000 標準。SQL Server 2005 でもサポートされています。)
于 2008-10-06T17:55:40.870 に答える
6
SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'
于 2008-10-06T17:56:33.067 に答える
6
の欠点は、やINFORMATION_SCHEMA.TABLES
テーブルなどのシステム テーブルも含まれており、独自のテーブルと区別する方法がないことです。dtproperties
MSpeer_...
システム テーブルの除外をサポートする(非推奨のsysobjectssys.objects
ビューの新しいバージョン) を使用することをお勧めします。
select *
from sys.objects
where type = 'U' -- User tables
and is_ms_shipped = 0 -- Exclude system tables
于 2017-09-27T12:20:24.070 に答える
2
于 2015-11-13T12:34:51.257 に答える
2
SSMS で、特定のデータベース (例: "MyDatabase") 内のすべての完全修飾テーブル名を取得するには:
SELECT [TABLE_CATALOG] + '.' + [TABLE_SCHEMA] + '.' + [TABLE_NAME]
FROM MyDatabase.INFORMATION_SCHEMA.Tables
WHERE [TABLE_TYPE] = 'BASE TABLE' and [TABLE_NAME] <> 'sysdiagrams'
ORDER BY [TABLE_SCHEMA], [TABLE_NAME]
結果:
- MyDatabase.dbo.MyTable1
- MyDatabase.dbo.MyTable2
- MyDatabase.MySchema.MyTable3
- MyDatabase.MySchema.MyTable4
- 等
于 2017-10-13T03:10:09.693 に答える