- PR -

ADO.NETでテーブルの存在を確認する方法がわからない。

1
投稿者投稿内容
赤いんげん
会議室デビュー日: 2006/08/29
投稿数: 10
お住まい・勤務地: 東京都
投稿日時: 2006-09-17 22:12
お世話になっております。

ADO.NETでODBC経由でSQLserver2000へ接続するプログラムを作成しています。
プログラムの最初で各テーブルの存在確認をして、存在しなければ、
新規にCreate文を発行したいと考えていますが、
テーブルの存在確認を行う方法がわかりません。

SQLserver固有の関数を使用すれば可能とのページがあったのですが、
ODBC経由で複数のDBMSに対応させたいと考えておりますので、
ADO.NETの機能で実現させたいです。

どなたかよろしくお願いいたします。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-09-17 23:40
IF NOT EXISTSが使えないならエラーが発生したら存在しないと見なすとかしかないかな。
キーを返すようなSQLを発行してキーが帰らなければみたいことはやったことある。
ODBCではできないか。
赤いんげん
会議室デビュー日: 2006/08/29
投稿数: 10
お住まい・勤務地: 東京都
投稿日時: 2006-09-18 00:20
レスありがとうございます。
そうですか・・・簡単にはできなさそうですね。

さきほど以下のページを発見し、テーブル一覧を取得して存在確認をしようと
していたのですが、まだうまく動かせません・・・うーん。
http://davidhayden.com/blog/dave/archive/2006/03/29/2895.aspx

ただもうめんどくさいので、とりあえずCreate文を一律発行して、
例外が出力されれば、それを読み飛ばす方法をとりたいと思います。
「例外を発生させずに、既存テーブルを初期化&再Createする」という動作を取る
DBMSがないことを祈ります・・・あった場合は再検討。

どうもありがとうございました。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-09-18 00:57
引用:

赤いんげんさんの書き込み (2006-09-18 00:20) より:

さきほど以下のページを発見し、テーブル一覧を取得して存在確認をしようと
していたのですが、まだうまく動かせません・・・うーん。
http://davidhayden.com/blog/dave/archive/2006/03/29/2895.aspx


このページに GetSchema というキーワードがあるので、
これを MSDN で検索してみると、次のページが引っかかりました。
http://msdn2.microsoft.com/ja-jp/library/kcax58fh.aspx
1

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