
在sql数据库中有一个sysobjects表,记录当前所有的表名可以用Query(SQL语句)SELECT FROM sysobjectsWHERE '表名' = Name或用Table打开,用Locate找一下
你可以使用静态字典表dba_tables去查询,select table_name from dba_tables where table_name like '你的表名';如果有记录行查出来,就说明这个表是存在的,如果没有记录行查出来,就说明数据库中没有这个表。
注意:dba_tables 是需要dba权限才可以查询的,同样的还有另外两个表user_tables和all_tables
其中dba_tables:查询数据库中表信息
all_tables :查询当前用户和当前用户所能看到的所有表信息
user_tables : 只能看到当前用户下的表信息
用户表在当前数据库的系统表中,可使用以下语句进行查找:
select Name,ID from sysobjects where xtype='U'
若是将xtype='U'换成xtype='V'就可以查出来所有视图
xtype参数大概有以下种类:
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
FN = 标量函数
IF = 内嵌表函数
K = PRIMARY KEY 或 UNIQUE 约束
L = 日志
P = 存储过程
R = 规则
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
V = 视图
X = 扩展存储过程
1、sql语句判断数据库表是否存在:
sql:select from user_all_tables where table_name='tableName'
如果结果为空则表示不存在,如何结果不为空则表示存在;
2、java如何判断数据库表是否存在
可以利用上面的sql,执行获取结果,相应的java代码如下:
String helperName= delegatorgetGroupHelperName("comasiainfo");
SQLProcessor sqlProcessor= new SQLProcessor(helperName);
String sql = "select from user_all_tables where table_name='"+table+"'";
ResultSet rsTables =sqlProcessorexecuteQuery(sql);
if(rsTablesnext()){
DebuglogWarning("table:"+table+" exists", module);
}else{
DebuglogWarning("table:"+table+" does not exist", module);
}
查询系统字典表all_tables,判断表是否存在。
systemobjects表中保存着数据库的所有表、视图和存贮过程等的信息,检索这个系统表即可得到是否存在。此方法还适用于检查视图和存贮过程,相应的标志要改为IsView(视图/查询)或者IsProcedure(存贮过程),table_name处为view_name或procedure_name。
以上就是关于如何查询SQLserver中某个表是否存在全部的内容,包括:如何查询SQLserver中某个表是否存在、怎样检测oracle中是否存在某个表、sql语句 判断表是否存在等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)