承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

SQL基础:SQL server中提示对象名无效的解决方法

管理员 2023-09-22 08:23:13 互联网圈 0 ℃ 0 评论 3776字 收藏

 产生SQL对象名无效的问题大多缘由是由于数据迁移致使的,下面我们给出解决方法. 在使用数据库的进程中,常常会遇到数据库迁移或数据迁移的问题,或有突然的数据库破坏,这时候需要从数据库的备份中直接恢复。但是,此时会出现问题,这里说明几种常见问题的解决方法。

一、孤立用户的问题 比如,之前的数据库的很多表是用户test建立的,但是当我们恢复数据库后,test用户此时就成了孤立用户,没有与之对应的登陆用户名,哪怕你建立了一个test登录用户名,而且是之前的用户密码,用该用户登录后一样没办法操作之前属于test的用户表。

           这个问题有两种办法解决。 先说解决的条件条件。 首先,要用备份文件还原数据库,我们这里的数据库名为testdb,里面有属于用户test的用户表。这个很容易了操作了,不多讲了,在企业管理器中很方即可以恢复。恢复后,就产生了孤立用户test。然后,用sa用户或具有DBA权限的用户登录,创建一个test数据库登录用户,密码随意设置了,也能够和之前的保持一致。我们用它来对应孤立的test用户。

     使登录用户和数据库的孤立用户对应起来 其实我们建立了一样名称的数据库登录用户后,数据库中的表我们照样不能使用时由于sid的区别,就是系统登录表和数据库用户表中的用户名相同,单是sid字段,数据库中的或者之前旧系统的sid值,所以我们就要把它对应成我们新建的,数据库靠sid来辨认用户。 这里可使用存储进程sp_change_users_login。它有三种动作,分别是report,update_one和auto_fix。

 运行sp_change_users_login 'report',系统会列出当前数据库的孤立用户数。

我们只需要选择当前数据库为testdb,然后运行 sp_change_users_login 'update_one','test','test' –系统就会提示修复了一个孤立用户。

如果没有建立test的登录用户,还可以用 sp_change_users_login 'Auto_Fix', 'test', NULL, 'testpassword' –来创建一个登录用户名为test,密码为testpassword的用户与之对应。 好了,到这里通常情况下,数据库对象得到访问问题已解决了。如果有多个数据库中有同一个用户的数据表,只需要选择区别的数据库,履行update_one的那个就好了。

二、刚打开SQL server Manager Studio,想看看表里的信息,就写一个查询语句,结果表名下有红线,并且履行的时候还提示对象名无效:

在这里插入图片描述

这是由于没有选定数据库名,由于test只是一个表名,数据库默许为master数据库了:

在这里插入图片描述

这个时候在下拉列表中把数据库选为表所在的数据库就能够了。

三、缓存问题,这个比较简单,但是应当不会产生在数据库刚打开的时候,应当是产生在做了几次操作以后,情况跟第一种一样,解决办法就是清楚缓存,快捷键ctrl+shift+r

到此这篇关于SQL server中提示对象名无效的解决方法的文章就介绍到这了,更多相关SQL server 对象名无效内容请搜索之前的文章或继续浏览下面的相关文章希望大家以后多多支持!

文章来源:丸子建站

文章标题:SQL基础:SQL server中提示对象名无效的解决方法

https://www.wanzijz.com/view/88328.html

X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信