请问如何判断在数据库中是否存在一张表d1

scarletg 2003-10-19 03:06:53
d1有可能是空的
...全文
115 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
imagex 2003-10-20
  • 打赏
  • 举报
回复
先建一张表tablenames
然后再建这个查询:
select name into tablenames from msysobjects where type=1
以后就从这个tablenames
判断
scarletg 2003-10-20
  • 打赏
  • 举报
回复
ok
success!
lynx1111 2003-10-20
  • 打赏
  • 举报
回复
http://otn.oracle.com/global/cn/sample_code/tech/java/codesnippet/jdbc/OracleDatabaseMetaData.html
lynx1111 2003-10-20
  • 打赏
  • 举报
回复
转贴:
import java.sql.*;

public class getTableName {

public getTableName() {}//end inst

public static void main(String[] args) throws Exception{
String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url="jdbc:microsoft:sqlserver://kknd97:1433;DatabaseName=jbdb";
String user="sa";
String pass="";



Class.forName(driver);
Connection con=DriverManager.getConnection(url,user,pass);
DatabaseMetaData dmd =con.getMetaData();

String[] types=new String[6];

ResultSet rs=dmd.getTables(null,null,"%",null);

while(rs.next()){
for(int i=1;i<=5;i++){
types[i]=rs.getString(i);
}//end for
System.out.println("类型["+types[4]+"]名称["+types[3]+"]");
System.out.println("");
}//end while

}//end main

}//end class


注意事项 1 一定要有mssql的jdbc如果你使用的是其他数据库,请修改我访问数据库的jdbc参

2 如果使用jdbc一定要有jdbc的类包,并且保证能够引用
3 请察看javadoc中关于DatabaseMetaData类的说明,在
java.sql.DatabaseMetaData



最后 祝你好运!
scarletg 2003-10-20
  • 打赏
  • 举报
回复
imagex:我用你的方法,一样是没有读取权限
[Microsoft][ODBC Microsoft Access Driver] 不能读取记录;在 'msysobjects' 上没有读取数据权限。
imagex 2003-10-19
  • 打赏
  • 举报
回复
SELECT [NAME] FROM MSysObjects WHERE TYPE=1 and [name]='d1'
你到数据库里做是可以的,但是,用在外部程序中就可能这样:
[Microsoft][ODBC Microsoft Access Driver] 不能读取记录;在 'msysobjects' 上没有读取数据权限。
imagex 2003-10-19
  • 打赏
  • 举报
回复
应该没有关系。可能和Access版本有关系
scarletg 2003-10-19
  • 打赏
  • 举报
回复
我照你说的做了
仍然是没有读取权限
:(
见鬼了,我用的xp的access,可能和这个有关系吗?
lynx1111 2003-10-19
  • 打赏
  • 举报
回复
新建一个查询试试:
打开数据库--〉查询—〉在设计视图中创建查询--〉关闭--〉视图--〉sql视图--〉
SELECT [NAME] FROM MSysObjects WHERE TYPE=1
--〉保存(输入名字)
然后在程序中查询此查询
scarletg 2003-10-19
  • 打赏
  • 举报
回复
;(
不能读取记录,在MSysObjects上没有读取数据权限
lynx1111 2003-10-19
  • 打赏
  • 举报
回复
MSysObjects代表什么?
MSysObjects是acces系统表

我现在如果想知道在acces数据库train中,有没有d1,该怎么写?
连接上据库train以后执行
SELECT [NAME] FROM MSysObjects WHERE TYPE=1 and [name]='d1'就行了
如果有结果集产生这存在此表

scarletg 2003-10-19
  • 打赏
  • 举报
回复
MSysObjects代表什么?
我现在如果想知道在acces数据库train中,有没有d1,该怎么写?
谢谢!
呵呵,我这个人真实太麻烦你了
lynx1111 2003-10-19
  • 打赏
  • 举报
回复
SELECT [NAME] FROM MSysObjects WHERE TYPE=1 and [name]='d1'

scarletg 2003-10-19
  • 打赏
  • 举报
回复
很简单,就是判断在数据库中存不存在d1这张表,
因为我原来问这个问题的时候,有人要我用select * from d1 ,说返回的记录数不为0就可以了,但是,d1原本就是空的.

我用的是access作为数据库的.

lynx1111 2003-10-19
  • 打赏
  • 举报
回复
d1有可能是空的
是什么意思?数据为空还是此表不存在?
sql server 中查寻表是否存在:
select * from sysobjects where xtype='u' and name='d1'

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧