Q
檢測表是否存在
1
A
回答
2
系統過程sp_GetTables可以告訴你,在你連接到目錄哪些表存在:
EXECUTE PROCEDURE sp_GetTables(NULL,NULL,NULL, '表')
非SQL的解決辦法是使用AdsCheckExistence API。
1
我不是ADS用戶,所以我不能詳細回答。
參見http://devzone.advantagedatabase.com/dz/webhelp/Advantage10.1/index.html
The're是system.tables有關表的信息查看。 我想你也可以編寫SQL查詢來檢查表。
+0
謝謝。只是看看,它似乎是system.tables是我沒有的數據字典的一部分。 – Jon
0
我喜歡Peter的回答,但取決於你需要做什麼,你可能正在尋找TRY,CATCH,FINALLY語句。
TRY
// Try to do something with the table
select top 1 'file exists' from "non_existing_table";
CATCH ADS_SCRIPT_EXCEPTION
// If a "7041 - File does not exist" error ocurrs
IF __errcode = 7041 THEN
// Do something else
select 'file does not exist' from system.iota;
ELSE
// re-raise the other exception
RAISE;
END IF;
END TRY;
0
Delphi代碼:
function TableExists(AConnection: TADOConnection; const TableName: string): boolean;
var
R: _Recordset;
begin
if AConnection.Connected then
try
R := AConnection.Execute('Select case when OBJECT_ID(''' + TableName + ''',''U'') > 0 then 1 else 0 end as [Result]', cmdText, []);
if R.RecordCount > 0 then
Result := (R.Fields.Items['Result'].Value = 1);
except on E:exception do Result := false;
end;
這個簡單的功能利用現有TADOConnection
端;
相關問題
- 1. 檢查表是否存在
- 2. 檢查表是否存在
- 3. 檢查表是否存在
- 4. 檢測物理光驅是否存在
- 5. 檢測並行端口是否存在
- 6. 如何檢測鍵盤是否存在
- 7. 檢測PHP會話是否存在
- 8. 無法檢測文件是否存在
- 9. 檢測文件是否存在
- 10. .net檢測Office.interop.Excel是否存在
- 11. 檢測WordPress插件是否存在
- 12. 檢測XML中是否存在值
- 13. Scrapy檢測Xpath是否存在
- 14. SQLite:檢測rowid是否存在
- 15. 檢測圖像中是否存在球
- 16. 檢測窗口是否存在名稱
- 17. 檢測是否存在特定的Cookie
- 18. 檢測條目是否存在錨點
- 19. 檢測www子域是否存在
- 20. 檢測文件是否存在
- 21. Firebase檢測用戶是否存在
- 22. 檢查表中是否存在表
- 23. LINQ檢查是否存在在列表
- 24. 如何檢測Oracle中某個表上是否存在索引?
- 25. 快速檢測DataContext表或視圖是否存在
- 26. 如何檢測Postgres臨時表是否已存在?
- 27. 如何檢測表是否存在(它沒有類或ID)
- 28. 測試是否存在註冊表值
- 29. 如何檢測表是否包含表?
- 30. PHP檢測是否安裝了閃存
謝謝!任何想法,如果你可以返回0/1或'真/假'? – Jon
在ADS 10.x中,你可以選擇一個過程,像這樣: SELECT * FROM(EXECUTE PROCEDURE sp_GetTables(NULL,NULL,NULL, '表'))一個WHERE TABLE_NAME = 'TEST.ADT' 我會那麼只需檢查結果記錄計數,1爲TRUE 0爲FALSE。 –
將表名稱傳遞到sp_GetTables中稍微簡單一些: EXECUTE PROCEDURE sp_GetTables(NULL,NULL,'TEST.ADT','TABLE') –