我想从名称由用户提供的表中读取数据.所以在实际开始读取数据之前,我想检查数据库是否存在.
我在NET上看到了几段声称可以执行此操作的代码.但是,它们似乎只适用于SQL服务器,或mysql或其他一些实现.有没有通用的方法来做到这一点?
(我已经单独检查是否可以连接到提供的数据库,所以我非常确定可以打开到数据库的连接.)
您不能以跨数据库的方式执行此操作。一般来说,不同数据库的DDL(即创建表、索引等的代码)完全不同,因此检查表是否存在的逻辑也不同。
不过,我想说最简单的答案就是:
SELECT * FROM <table> WHERE 1 = 0
Run Code Online (Sandbox Code Playgroud)
如果该查询给出错误,则该表不存在。如果它有效(尽管它会返回 0 行),则该表存在。
不过,请务必小心用户输入的内容。什么可以阻止他指定“sysusers”作为表名(在 SQL Server 中,这将是所有数据库用户的列表)