C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 索引情報を取得したい


(過去ログ 73 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■42630 / inTopicNo.1)  索引情報を取得したい
  
□投稿者/ スキーマを取りたい (1回)-(2009/10/19(Mon) 17:47:14)

分類:[データベース全般] 

報は INFORMATION_SCHEMA Viewで取得できる。とあります。
テーブル一覧の取得は
select * from INFORMATION_SCHEMA.TABLES
でできます。
http://msdn.microsoft.com/ja-jp/library/cc407988.aspx
の資料によると、索引情報は INFORMATION_SCHEMA.INDEXES でとれる。とあります。
しかし、 SQL Server 2008 のIDEでは、INFORMATION_SCHEMA.のインテリセンスで INDEXESが表れません。
直接打ち込むと select * from Information_Schema.INDEXES
[オブジェクト名 'Information_Schema.INDEXES' が無効です。]とエラーになります。

索引情報を取得する方法はないのでしょうか。SQL ServerはSQL92のスキーマ取得を満たしていないのでしょうか。
宜しくお願いいたします。
引用返信 編集キー/
■42664 / inTopicNo.2)  Re[1]: 索引情報を取得したい
□投稿者/ たくボン (266回)-(2009/10/20(Tue) 00:39:33)
No42630 (スキーマを取りたい さん) に返信
> 報は INFORMATION_SCHEMA Viewで取得できる。とあります。
> テーブル一覧の取得は
> select * from INFORMATION_SCHEMA.TABLES
> でできます。
> http://msdn.microsoft.com/ja-jp/library/cc407988.aspx
> の資料によると、索引情報は INFORMATION_SCHEMA.INDEXES でとれる。とあります。
> しかし、 SQL Server 2008 のIDEでは、INFORMATION_SCHEMA.のインテリセンスで INDEXESが表れません。
> 直接打ち込むと select * from Information_Schema.INDEXES
> [オブジェクト名 'Information_Schema.INDEXES' が無効です。]とエラーになります。
>
> 索引情報を取得する方法はないのでしょうか。SQL ServerはSQL92のスキーマ取得を満たしていないのでしょうか。
> 宜しくお願いいたします。

まぁ、ぶっちゃけSQL Serverは満たしてない。
独自路線というか、過去の遺産とでも言うべきかmasterの中を見てみると、バージョンが変わるたびに構造もごそっと変わる。

だから、masterの中身とかを直接いじったりしてるとバージョンアップの時に下手したら全部書き直しとかもあるから(経験者w)

なので、スキーマ情報とかを取得したいなら、SQL Server2000→2005の場合はストアドを使えってMS言ってたような記憶があるんだけど、2008ではView使えってことなのかな?
今、手持ちのPCに2008の環境がないから確認できないけど、sp_ほにゃららみたいなストアドはないですか?
引用返信 編集キー/
■42669 / inTopicNo.3)  Re[1]: 索引情報を取得したい
□投稿者/ もりお (112回)-(2009/10/20(Tue) 00:54:36)
No42630 (スキーマを取りたい さん) に返信
> http://msdn.microsoft.com/ja-jp/library/cc407988.aspx
OLE DB を利用されるのでしょうか。

Dim tableIndexes As DataTable

Using connection As New OleDbConnection( ... )
    connection.Open()
    tableIndexes = connection.GetSchema("Indexes")
    connection.Close()
End Using


SQL で取得となりますと
sys.indexes 辺りではないかしら

SQL Server 2008 オンライン ブック
	オブジェクト カタログ ビュー (Transact-SQL)
http://msdn.microsoft.com/ja-jp/library/ms189783.aspx

引用返信 編集キー/
■42681 / inTopicNo.4)  Re[2]: 索引情報を取得したい
□投稿者/ スキーマを取りたい (3回)-(2009/10/20(Tue) 10:26:47)
早速の回答、ありがとうございました。
以前のバージョンでも取れないと聞きました。
INFORMATION は共通仕様といっても、共通実装ではないのですね。
GetShema() が確実ですね。そうします。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -