SQL Server テーブル一覧取得いろいろ

  • 1
    Like
  • 0
    Comment

SQL Serverでテーブル一覧に関する情報を取得する。

テーブル一覧取得

全テーブル取得
select * from sys.objects;
ユーザーテーブルだけ
select * from sys.objects where type = 'U';
特定(hoge)のスキーマ配下だけ
select * from sys.objects where schema_id = schema_id('hoge');

テーブルの行数を一括で求める(PostgreSQL風)

特定(hoge)のスキーマ配下のテーブルの行数を求める
select
  schema_name(SYSOBJ.schema_id) as schemaname,
  SYSOBJ.name as relname,
  SINDEXES.rows as n_live_tup
from sys.objects as SYSOBJ inner join sys.sysindexes as SYSINDEXES on
  SYSOBJ.object_id = SYSINDEXES.id and
  SYSINDEXES.indid < 2
where SYSOBJ.type = 'U'
  and schema_name(SYSOBJ.schema_id) = 'hoge'
order by SYSOBJ.name;