- PR -

テーブル名の取得について

投稿者投稿内容
ken
大ベテラン
会議室デビュー日: 2006/03/29
投稿数: 121
お住まい・勤務地: 東京
投稿日時: 2006-08-18 14:08
C#
SQL Server2005
を使用しています。

例えば、『TEST』というデータベースに
A,B,Cという3つのテーブルあった場合、
この、A,B,Cというテーブル名を
取得するような方法は、あるのでしょうか?
簡単に言うと、あるアプリケーションから
コマンドを使って、テーブル名を取得できれば
と考えています。

よろしく御願いいたします。
Yam
大ベテラン
会議室デビュー日: 2003/09/13
投稿数: 179
お住まい・勤務地: だんじり祭りの地
投稿日時: 2006-08-18 14:23
コマンドではありませんが

コード:
SELECT          name
FROM            sysobjects
WHERE           (xtype = 'U') OR      // User表
                      (xtype = 'S')   //System表

Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2006-08-18 14:24
諸農です。

以下のドキュメントは参考になるでしょうか。

SQL Server 2005 Books Online
「sp_tables (Transact-SQL)」


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-08-18 14:24
さかもとです。

oleならGetOleDbSchemaTableメソッドがありますが、以下のURLが参考になるかと。

参考

[ メッセージ編集済み 編集者: さかもと 編集日時 2006-08-18 14:24 ]
ken
大ベテラン
会議室デビュー日: 2006/03/29
投稿数: 121
お住まい・勤務地: 東京
投稿日時: 2006-08-18 16:30
さかもと様、jubei様、Yam様
レスありがとう御座います。

現在使用しているのが、SqlClientで
oleの、GetOleDbSchemaTableような事は
出来るのでしょうか??

機能的には、同様な感じを受けるのですが
どちらを使用するのが、いいのでしょうか?
仕様による部分も有るかと思いますが、
一般的には、どちらがいいのでしょうか?

よろしく御願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-18 16:59
引用:

kenさんの書き込み (2006-08-18 16:30) より:

現在使用しているのが、SqlClientでoleの、GetOleDbSchemaTableような事は出来るのでしょうか??


もう一度、リンク先を読まれた方が良いですね。

  DataReader の GetSchemaTable メソッドと Visual C# .NET を使用して列スキーマを取得する方法

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ken
大ベテラン
会議室デビュー日: 2006/03/29
投稿数: 121
お住まい・勤務地: 東京
投稿日時: 2006-08-18 17:34
じゃんぬねっとさん、
いつもレスありがとう御座います。

リンク先、読んでみました。
プロバイダとアプローチが違うみたいですが
同じ事が出来るみたいなので、
SqlClientで試してみたいかと思います。
(元のソースがSqlでしたので。)
ken
大ベテラン
会議室デビュー日: 2006/03/29
投稿数: 121
お住まい・勤務地: 東京
投稿日時: 2006-08-21 11:32
DataReaderで下記のコマンドを送ると
エラーになるのですが(SQLクエリアナライザーではOK)
*エラー文
sp_tables @table_type="'table'"

クエリアナライザーでOKでも、使えるとは、限らないのでしょうか?
GetSchemaTable等を使用した方が良いのでしょうか?

よろしく御願いいたします。

スキルアップ/キャリアアップ(JOB@IT)