質問

Access データベースがあり、テーブルを削除してから新たにテーブルを作成しました。ただし、テーブルが削除されたものの作成されなかった場合に備えて、テーブルをテストできる必要があります(つまり、DTS パッケージの開始直後に誰かが停止したとき -roll-eyes-)。SQL データベースでこれを行う場合は、次のようにするだけです。

IF (EXISTS (SELECT * FROM sysobjects WHERE name = 'Table-Name-to-look-for'))
BEGIN
drop table 'Table-Name-to-look-for'
END

しかし、Access データベースでそれを行うにはどうすればよいでしょうか?

オプションの回答:DTS パッケージにエラーを無視させ、エラーが存在するかどうかを確認せずに次のステップに進む方法はありますか?

SQLサーバー2000

役に立ちましたか?

解決

DTS パッケージから Access データベースのシステム オブジェクト テーブルをクエリできるかどうかはわかりません。

もしそうなら しません それなら、問題の Access テーブルから SELECT * を実行してみてはどうでしょうか エラーをキャッチする 失敗したら?

他のヒント

同じ T-SQL を試してみますが、MS ACCESS では sys オブジェクト テーブルが呼び出されます。MSysObjects。

これを試して:

SELECT * FROM MSysObjects WHERE Name = 'your_table';

そしてそこからうまくいくかどうかを確認してください。

[ツール] -> [オプション] -> [表示] (タブ) -> [隠しオブジェクト]、[システム オブジェクト] をチェックすると、これらのテーブルを確認できます。したがって、両方を見ることができます。テーブルを開くと、テーブル名、クエリなどが表示されるはずです。これを手動で変更しないでください。変更すると、DB がパニックになる可能性があります:)

マーティン。

PD:If Exists では、オブジェクト タイプもチェックする必要があります。

IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[Your_Table_Name]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)

Microsoft Access には、テーブルを含むすべてのデータベース オブジェクトのリストが含まれる MSysObjects というシステム テーブルがあります。テーブル オブジェクトにはタイプ 1、4、および 6 があります。

型を参照することが重要です。

...Name='TableName' の場合、(1,4,6) と入力します

それ以外の場合、テーブル以外のオブジェクトが返される可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top