0

テーブルを削除してからテーブルを新たに作成する Access データベースがあります。ただし、テーブルが削除されても作成されない場合 (つまり、 -roll-eyes- を開始した直後に誰かが DTS パッケージを停止した場合) に備えて、テーブルをテストできる必要があります。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 Server 2000

4

3 に答える 3

1

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

タイプを参照することが重要です。

... Where Name='TableName' と入力 (1,4,6)

そうしないと、テーブル以外のオブジェクトが返される可能性があります。

于 2008-08-25T14:03:17.400 に答える
1

同じ T-SQL を試してみてください。ただし、MS ACCESS では、sys オブジェクト テーブルは MSysObjects と呼ばれます。

これを試して:

SELECT * FROM MSysObjects WHERE Name = 'your_table';

そこから機能するかどうかを確認します。

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

マーティン。

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

IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[Your_Table_Name]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
于 2008-08-25T14:05:30.687 に答える
1

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

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

于 2008-10-02T15:34:39.370 に答える