导读 本文主要介绍了SQL server中提示对象名无效的解决方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

产生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数据库了:

这个时候在下拉列表中把数据库选为表所在的数据库就可以了。www.linuxprobe.com

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

教你如何解决SQL server中提示对象名无效相关推荐

  1. sql server死锁_如何解决SQL Server中的死锁

    sql server死锁 In this article, we will talk about the deadlocks in SQL Server, and then we will analy ...

  2. 解决 SQL Server 中 CPU 使用率过高的问题

    本文提供了诊断和修复运行 Microsoft SQL Server 的计算机上 CPU 使用率过高导致的问题的过程. 尽管在 SQL Server 中出现 CPU 使用率过高有许多可能原因,但以下原因 ...

  3. 如何修改 SQL Server 中的实例名 ?

    在微软的社区也看到了这个问题: https://social.msdn.microsoft.com/Forums/en-US/c59b0840-1595-456a-b77e-d95b1a2a9097/ ...

  4. sql 闩锁 原因_如何识别和解决SQL Server中的热闩锁

    sql 闩锁 原因 描述 (Description) In SQL Server, internal latch architecture protects memory during SQL ope ...

  5. sql server 监视_如何在SQL Server中监视对象空间增长

    sql server 监视 介绍 (Introduction) There are many situations in a DBA's life that lead him or her to mo ...

  6. 如何解决SQL Server中SQL身份危机

    描述 (Description) SQL Identity columns provide a convenient way to auto-number an ID column within a ...

  7. PowerDesigner16建表在SQL SERVER 2008报 对象名 'sysproperties' 无效。

    http://blog.itpub.net/30150152/viewspace-1454979/

  8. 试用版SQL Server 2008提示评估期已过 解决办法

    解决SQL Server 2008提示评估期已过 第一步:进入SQL2008配置工具中的安装中心 第二步:再进入维护界面,选择版本升级 第三步:进入产品密钥,输入密钥 第四步:一直点下一步,直到升级完 ...

  9. sql查询非ascii字符_SQL替换:如何在SQL Server中替换ASCII特殊字符

    sql查询非ascii字符 One of the important steps in an ETL process involves the transformation of source dat ...

  10. 什么是SQL Server中的数据库规范化?

    In addition to specifically addressing database normalization in SQL Server, this article will also ...

最新文章

  1. Android移动开发之【通往安卓的神奇之旅】基于回调的事件处理
  2. first review of team blog(4.26)
  3. 信息学奥赛一本通 1232:Crossing River | OpenJudge NOI 4.6 702:Crossing River
  4. Android 蓝牙遥控器的连接
  5. OpenShift Security 14 - 使用 RHACS 中的进程基线功能找出在容器中运行的风险操作
  6. Netty学习总结(4)——图解Netty之Pipeline、channel、Context之间的数据流向
  7. java 创建bean_java – 使用spring按需创建bean
  8. Mac效率神器Alfred系列教程---剪切板历史记录
  9. 如何从 Mac 上的“照片”中导出照片、视频和幻灯片放映?
  10. 多个引用类型的变量“引用”同一个对象意味着什么
  11. mybatis xml中大于、小于、if else的写法
  12. python基础和软件测试
  13. Wilcoxon符号秩检验
  14. 自阿里P8爆出1031道java面试题后,我在boss直聘狂拿千份Offer
  15. 华勤技术股份有限公司
  16. Padavan老毛子的二级路由,怎样设置与主路由在同一网段
  17. Java学习总结3——枚举类和反射机制
  18. jmeter持续时间设置
  19. mac python环境搭建
  20. 密码学历史及近40年人物技术里程碑(公号回复“密码学”下载PDF资料,欢迎转发、赞赏、支持科普)

热门文章

  1. 区块链应用 | 高盛报告深度解读:区块链在未来的5大应用
  2. MyBatis中传递多个参数的方法以及传入混合参数的获取方式
  3. Android 学习笔记(6)之Lambda和注解
  4. spring-boot2 + vue2+element-ui + avue + uni-app (兮家开源商城)
  5. 关于apapche aurora rpm包
  6. PV(访问量)、UV(独立访客)、IP(独立IP) (转)
  7. R语言 第2章 数据对象与数据读写(2)
  8. android 实现qq动画,Android实现仿QQ登录界面背景动画效果
  9. Python 结巴分词(jieba)Tokenize和ChineseAnalyzer的使用及示例代码
  10. ESP32 LVGL8.1 ——msgbox 消息框 (msgbox 28)