2008-08-25 41 views
0

我有一個Access數據庫,在該數據庫中刪除了該表,然後重新創建該表。但是,我需要能夠在表被刪除但未創建的情況下(即當有人在啓動-roll-eyes-之後停止DTS包)對錶進行測試。如果我在SQL數據庫中這樣做,我只會這樣做:可以通過DTS測試是否存在MS-Access表

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

回答

1

我不知道你是否可以查詢系統表的對象從DTS包的Access數據庫。

如果沒有工作,爲什麼不嘗試從相關的Access表中執行SELECT *,然後catch the error如果失敗?

1

Microsoft Access中有一個名爲MSysObjects系統表,包含所有數據庫對象,包括表的列表。表對象具有類型1,4和6

引用類型是非常重要的:

...其中名稱= '表名' 否則型In(1,4,6)

,返回的內容可能是表格以外的某個對象。

1

嘗試使用相同的T-SQL,但在MS ACCESS中調用sys對象表: MSysObjects。

試試這個:

SELECT * FROM MSysObjects WHERE Name = 'your_table'; 

,看看它是否在那裏工作。

如果您轉至工具 - >選項 - >查看(選項卡) - >並查看隱藏對象,系統對象,則可以查看這些表。所以你可以看到兩者。如果你打開表格,你應該看到你的表名稱,查詢等。不要手動改變這個或DB可能恐慌:)

Martin。

Pd積:你如果不存在也應該檢查的對象類型:

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