java查询SQLServer遇到问题:对象名无效。

elivs_wu 2007-01-05 09:38:41
我用一个Statement查询SQLServer 2000,连接数据库没有问题,查询数据库中的系统表也没有问题,但是查询我自己建的表“userInfo”时就爆出异常:“对象名 'userInfo' 无效”。各位高手,是怎么回事??
...全文
2853 46 打赏 收藏 转发到动态 举报
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijunlin777 2012-09-27
  • 打赏
  • 举报
回复
可能是默认的表是master,而不是你要查询的表,你仔细看下查询的标题名是不是真确
CHZiroy 2012-09-26
  • 打赏
  • 举报
回复
queryStr = "use AnyviewJ select *from Projects where project = '" + proName + "'";
类似问题,加use 数据库名称
chaiwl8869 2012-08-12
  • 打赏
  • 举报
回复
当一个非sysadmin 固定服务器角色成员(非DBA用户),在查询分析器或程序中(asp,vb等),新建一个数据库对象时,数据库对象的所有者为当前的登录的用户。如果程序下一次更改为以DBA身份或者其它身份运行时,就会提示找不到该数据库对象。

例如: 如果用户Andrew 不是固定服务器角色 sysadmin 的成员,而只是固定数据库角色 db_owner 的成员,并创建表 T1,则 T1 属于 Andrew,并限定为 Andrew.T1。其它用户在查询分析器或程序中用SQL语句访问该表时需要在表前面加上所有者:

select * from Andrew.T1

而不能直接

select * from T1

不然会提示找不了表对象。
在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里将你使用的登陆用户的默认数据库设为你所使用的数据库。
服务器角色:不能勾选system administrator,否则查询表时要加所有者。(select * from Andrew.T1)
Jeremy24and23 2011-12-13
  • 打赏
  • 举报
回复
按照33楼的做法就可以了!!!多谢!!!!!!!!!
yiissu 2011-05-21
  • 打赏
  • 举报
回复
通用的错误。

在SQL里面写这条语句
use 数据库名

运行之 OK
sunny12sn 2011-05-20
  • 打赏
  • 举报
回复
急聘JAVA DEV


职位需求:

本科1年-5年 Java工作经验;
有较强的需求分析和设计能力,较强的团队协作能力;
英语熟练;
工作地点:杭州


收到简历后我会尽快联系大家的,职位机会都很不错,有意者请尽快联系

有意者请将个人简历发至邮箱:sunny2sn@hotmail.com
或加我MSN:sunny2sn@hotmail.com
qq:1041785334
职业宅男 2011-05-20
  • 打赏
  • 举报
回复
肯定是楼主把java连接sql server的数据库名写错了。
y243234469 2011-05-20
  • 打赏
  • 举报
回复
我刚刚也遇到了这个问题,我是因为当前数据库的用户没有权限。选中要操作的表的单击右键选中属性,然后点击权限,再把你那个用户需要的权限勾上即可。
wujun8 2011-04-29
  • 打赏
  • 举报
回复
说得对,就是修改登录用户的默认数据库!但是,这是为什么呢?url中已经明确指出了数据库的名称!为什么???
求解......
望舒 2011-04-29
  • 打赏
  • 举报
回复
2000不熟 2005就没这问题
hedajisuanji 2010-06-30
  • 打赏
  • 举报
回复
默认数据库不对
xingxing1909 2009-09-14
  • 打赏
  • 举报
回复
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 ‘xxx’ 无效


根本原因:

访问数据库的用户有登录权限,但无操作表的权限

解决办法:

1. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里将你使用的登陆用户的默认数据库设为你所使用的数据库。

2. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里新增一个登录用户(在其中选择SQL Server 身份验证、服务器角色和要访问的数据库),以后便可用些新增用户访问你勾选的数据库了。

解决方案来源: http://blog.163.com/cheche3835/blog/static/43995698200773064027363/

楼主的问题我也遇到过了,感觉欲哭无泪,最后就是用这个方法解决的!!!!!!!!!!
xingxing1909 2009-09-14
  • 打赏
  • 举报
回复
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 ‘xxx’ 无效


根本原因:

访问数据库的用户有登录权限,但无操作表的权限

解决办法:

1. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里将你使用的登陆用户的默认数据库设为你所使用的数据库。

2. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里新增一个登录用户(在其中选择SQL Server 身份验证、服务器角色和要访问的数据库),以后便可用些新增用户访问你勾选的数据库了。

楼主的问题我也遇到过了,感觉欲哭无泪,最后就是用这个方法解决的!!!!!!!!!!
lliiqiang 2009-09-14
  • 打赏
  • 举报
回复
说明没有那个表
meadking 2008-10-31
  • 打赏
  • 举报
回复
表中有关键字?
呵呵
「已注销」 2008-10-31
  • 打赏
  • 举报
回复
在查询语句前添加use 数据库名 就可以解决此问题
神马都能聊 2008-03-03
  • 打赏
  • 举报
回复
直接复制到java内部当然不行了,字符串复制过来与你在查询分析器里执行的语句不一致.

修改你的查询语句至类似下面的语句
str = " SELECT id from userInfo where name= "+'strwww'+" and password= "+str00000;
joynet007 2008-03-03
  • 打赏
  • 举报
回复
userInfo 或许是数据库 的一些备用的,特殊的字符所以尽量少使用那些字符串当作 表名和字段名称哦!
从新建一个吧!加成 tb_userInfo
IdeaPocket 2008-03-03
  • 打赏
  • 举报
回复
哈哈,初学者一般都很粗心
安迪 2008-03-03
  • 打赏
  • 举报
回复
有什么不一样!
加载更多回复(26)

62,614

社区成员

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

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