- - PR -
SQLサーバーで主キーの情報を抜くには
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-07-27 19:03
皆様にはいつもお世話になっております。
SQL文にてあるデータベースのテーブル名称、カラム一覧、主キーの3つの情報を取りたいと思っております。 テーブル名称、カラム一覧はシステムテーブルの「sysobjects」「syscolumns」から抜けるのですが、主キーの情報がどうも見当たりません。 どなたか、システムテーブルに詳しい方がいらっしゃいましたら教えてください。 よろしくお願いいたします。 |
|
投稿日時: 2004-07-27 19:06
SQLServerをいじったこと無いのですが、その命名規則なら
sysconstraints とか? |
|
投稿日時: 2004-07-27 19:28
希衣と申します。
以下のようなSQLを用いることで主キー情報の取得を行うことができます。 select name FROM fms..sysindexes WHERE id IN( select id FROM fms..sysobjects WHERE name = @TableName ) AND indid = 1 参考: SQLServer BooksOnline mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\tsqlref.chm::/ts_sys-i_76wj.htm 上記ドキュメントの情報を参照しますと、以下のような記述があります。 ・indid インデックスのID。1 = クラスタ化インデックス そのため、sysobjectsテーブルと組み合わせることで、 主キーの情報が取得できると思います。 [ メッセージ編集済み 編集者: 希衣 編集日時 2004-07-27 19:30 ] |
|
投稿日時: 2004-07-27 22:22
米田です。
>主キーの情報がどうも見当たりません。 sp_helpconstraint の実行結果に含まれます。 例 EXEC sp_helpconstraint 'Categories' |
|
投稿日時: 2004-07-27 23:16
よねだ様、希衣様、でくのぼう様
貴重なアドバイス、大変ありがとうございます。 何とかいけそうな気がしてきました。 明日、早速会社で試してみます。 また、引き続き、ご指導ご鞭撻のほど、よろしくお願いいたします。 |
1
