检查数据库中是否有任何表

时间:2014-07-20 03:09:24

标签: java sql sql-server database jdbc

我想在这个问题的答案中做同样的事情: Check if table exists 但我想检查是否存在任何表,而不仅仅是一个特定的表而不是遍历表名,我的意思是如果数据库中有任何表。 根据API,getTables()的第三个参数,

tableNamePattern - 表名模式;必须匹配存储在数据库中的表名

所以看起来tableName应该在数据库中完全匹配。有没有更好的方法来查找数据库中是否存在任何表?或者我真的必须遍历一系列表名并调用:

getConnection().getMetaData().getTables(null, null, "table", null).next();

每次迭代?

2 个答案:

答案 0 :(得分:2)

您可以通过查询表INFORMATION_SCHEMA.TABLES确定是否存在任何表:

select *
from INFORMATION_SCHEMA.TABLES;

如果要在名称中查找特定模式,可以添加where子句:

WHERE table_name like YOURPATTERNHERE

答案 1 :(得分:1)

为了补充一点,请使用IF EXISTS(),如下所示:

IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME LIKE '%MY TABLE%')
BEGIN
     --Do Something here
END