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. 检测XML中是否存在值
- 4. 无法检测文件是否存在
- 5. Firebase检测用户是否存在
- 6. 检测是否存在特定的Cookie
- 7. 检测PHP会话是否存在
- 8. 检测文件是否存在
- 9. SQLite:检测rowid是否存在
- 10. 如何检测键盘是否存在
- 11. 检测WordPress插件是否存在
- 12. 检查表中是否存在表
- 13. LINQ检查是否存在在列表
- 14. 如何检测Postgres临时表是否已存在?
- 15. 如何检测Oracle中某个表上是否存在索引?
- 16. 如何检测表是否存在(它没有类或ID)
- 17. 快速检测DataContext表或视图是否存在
- 18. 测试是否存在注册表值
- 19. XmlNode检查是否存在chidnodes列表
- 20. 检查SQL表是否存在
- 21. 检查是否存在注册表项
- 22. 检查excel中是否存在表格
- 23. 如何检查表是否存在
- 24. 检查临时表是否存在
- 25. 检查OleDb表中是否存在列
- 26. 检查Oracle表是否与Puppet存在
- 27. 如何检查DynamoDB表是否存在?
- 28. 检查是否存在表的SQL Server
- 29. 检查ID是否存在表
- 30. 检查列表中是否存在
谢谢!任何想法,如果你可以返回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') –