QA@IT
«質問へ戻る

質問を投稿

SQL Serverでテーブルの主キーやインデックスをSQLで取得したい

こんにちは。

SQL Server 2000 で、SQL文を使ってシステムテーブルにアクセスし、主キーや
インデックスの貼ってある列を取得したいと思っているのですが、うまく取れません。

具体的には、

select *
from sysobjects o join sysindexkeys i on o.id = i.id
where o.xtype = 'U' and o.name = 'テーブル名'

としても、インデックスが1つで1列しかないにもかかわらず、indidが複数行返ってき
ます。
また、sysobjects の xtypeで、PKとすれば主キーオブジェクトは取れるのですが、
その主キーオブジェクトのどの列がキーなのかの情報を取るにはどのシステムテーブ
ルにアクセスすればよいかわかりません。

ご存知の方おられませんでしょうか?

[ メッセージ編集済み 編集者: maru 編集日時 2004-10-27 11:46 ]

質問者:maru

こんにちは。

SQL Server 2000 で、SQL文を使ってシステムテーブルにアクセスし、主キーや
インデックスの貼ってある列を取得したいと思っているのですが、うまく取れません。

具体的には、

select *
from sysobjects o join sysindexkeys i on o.id = i.id 
where o.xtype = 'U' and o.name = 'テーブル名'

としても、インデックスが1つで1列しかないにもかかわらず、indidが複数行返ってき
ます。
また、sysobjects の xtypeで、PKとすれば主キーオブジェクトは取れるのですが、
その主キーオブジェクトのどの列がキーなのかの情報を取るにはどのシステムテーブ
ルにアクセスすればよいかわかりません。

ご存知の方おられませんでしょうか?


<font size="-1">[ メッセージ編集済み 編集者: maru 編集日時 2004-10-27 11:46 ]</font>

質問者:maru