こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLServerでのデータディクショナリ

OracleでテーブルのNot Null制約や、カラムのバイト数、PKかどうかなどが取れるように、
SQL Server でも取れますでしょうか?

Googleにて「SQLServer、 データディクショナリ」のキーワードで検索をしてみましたが、
出てくるのはOracleばかりでした。
(SQL Serverで使う言葉がデータディクショナリという言葉ではないのかも?)

SQL Server での取得方法、もしくはGoogle検索用のワードを知りたいです。

投稿日時 - 2012-02-13 21:36:46

QNo.7303543

困ってます

質問者が選んだベストアンサー

以下で調査可能ですよ。

sys.objectsでテーブルのみ抽出。
※type='U'

sys.objectsとsys.columnsをJOIN
※object_idが一致

sys.typesとsys.columnsをJOINしデータ型の名称を取得
※system_type_idが一致

>Not Null制約や、
sys.columns.is_nullable

>カラムのバイト数、
文字型の場合、sys.columns.max_length

数値型(decimal)の場合、sys.columns.precisionとsys.columns.scale(少数部)

>PKかどうか
sys.indexesとsys.objectsをジョインし、索引がPKかどうか判定
sys.indexes.is_primary_key

sys.columnsとsys.index_columnsをJOINし、索引列を特定
※sys.columnsとobject_idが一致
※sys.columnsとcolumn_idが一致
PK列を判定

これらの情報から私はテーブル定義書を逆生成してますよ。

投稿日時 - 2012-02-15 09:48:25

お礼

ありがとうございます。SQLを実行してみます!

投稿日時 - 2012-02-16 01:07:38

ANo.5

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(5)

ANo.4

 SQLServerでは、お求めの情報は、「システムビュー」の一種で「カタログビュー」という用語で表現されています。
 とここまでで、後は、自分で検索していただいても良いわけですが、念のため、MSDNによる2008R2のマニュアルの該当ページのリンクを張っておきます。

 http://msdn.microsoft.com/ja-jp/library/ms174365.aspx

投稿日時 - 2012-02-14 22:02:21

お礼

検索がうまくできない場合もご配慮していただきありがたいです!

投稿日時 - 2012-02-16 01:08:11

ANo.3

お礼

ありがとうございます!確認します。

投稿日時 - 2012-02-16 01:08:48

ANo.2

列情報はSYS.COLUMNSに有ります。
インデックス情報はSYS.INDEXESとSYS.INDEX_COLUMNSに有ります。
また、テーブル情報はSYS.OBJECTSに有ります。

投稿日時 - 2012-02-14 09:09:38

お礼

ありがとうございます。SQLを実行してみます!

投稿日時 - 2012-02-16 01:07:17

ANo.1

キーワード「SQLServer 制約 確認」で検索するとかなりのWebページがヒットします。

投稿日時 - 2012-02-13 21:50:03

お礼

ありがとうございます!調べてみます。

投稿日時 - 2012-02-16 01:06:46

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-