教你如何解决SQL server中提示对象名无效
导读 | 本文主要介绍了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中提示对象名无效相关推荐
- sql server死锁_如何解决SQL Server中的死锁
sql server死锁 In this article, we will talk about the deadlocks in SQL Server, and then we will analy ...
- 解决 SQL Server 中 CPU 使用率过高的问题
本文提供了诊断和修复运行 Microsoft SQL Server 的计算机上 CPU 使用率过高导致的问题的过程. 尽管在 SQL Server 中出现 CPU 使用率过高有许多可能原因,但以下原因 ...
- 如何修改 SQL Server 中的实例名 ?
在微软的社区也看到了这个问题: https://social.msdn.microsoft.com/Forums/en-US/c59b0840-1595-456a-b77e-d95b1a2a9097/ ...
- sql 闩锁 原因_如何识别和解决SQL Server中的热闩锁
sql 闩锁 原因 描述 (Description) In SQL Server, internal latch architecture protects memory during SQL ope ...
- sql server 监视_如何在SQL Server中监视对象空间增长
sql server 监视 介绍 (Introduction) There are many situations in a DBA's life that lead him or her to mo ...
- 如何解决SQL Server中SQL身份危机
描述 (Description) SQL Identity columns provide a convenient way to auto-number an ID column within a ...
- PowerDesigner16建表在SQL SERVER 2008报 对象名 'sysproperties' 无效。
http://blog.itpub.net/30150152/viewspace-1454979/
- 试用版SQL Server 2008提示评估期已过 解决办法
解决SQL Server 2008提示评估期已过 第一步:进入SQL2008配置工具中的安装中心 第二步:再进入维护界面,选择版本升级 第三步:进入产品密钥,输入密钥 第四步:一直点下一步,直到升级完 ...
- sql查询非ascii字符_SQL替换:如何在SQL Server中替换ASCII特殊字符
sql查询非ascii字符 One of the important steps in an ETL process involves the transformation of source dat ...
- 什么是SQL Server中的数据库规范化?
In addition to specifically addressing database normalization in SQL Server, this article will also ...
最新文章
- Android移动开发之【通往安卓的神奇之旅】基于回调的事件处理
- first review of team blog(4.26)
- 信息学奥赛一本通 1232:Crossing River | OpenJudge NOI 4.6 702:Crossing River
- Android 蓝牙遥控器的连接
- OpenShift Security 14 - 使用 RHACS 中的进程基线功能找出在容器中运行的风险操作
- Netty学习总结(4)——图解Netty之Pipeline、channel、Context之间的数据流向
- java 创建bean_java – 使用spring按需创建bean
- Mac效率神器Alfred系列教程---剪切板历史记录
- 如何从 Mac 上的“照片”中导出照片、视频和幻灯片放映?
- 多个引用类型的变量“引用”同一个对象意味着什么
- mybatis xml中大于、小于、if else的写法
- python基础和软件测试
- Wilcoxon符号秩检验
- 自阿里P8爆出1031道java面试题后,我在boss直聘狂拿千份Offer
- 华勤技术股份有限公司
- Padavan老毛子的二级路由,怎样设置与主路由在同一网段
- Java学习总结3——枚举类和反射机制
- jmeter持续时间设置
- mac python环境搭建
- 密码学历史及近40年人物技术里程碑(公号回复“密码学”下载PDF资料,欢迎转发、赞赏、支持科普)
热门文章
- 区块链应用 | 高盛报告深度解读:区块链在未来的5大应用
- MyBatis中传递多个参数的方法以及传入混合参数的获取方式
- Android 学习笔记(6)之Lambda和注解
- spring-boot2 + vue2+element-ui + avue + uni-app (兮家开源商城)
- 关于apapche aurora rpm包
- PV(访问量)、UV(独立访客)、IP(独立IP) (转)
- R语言 第2章 数据对象与数据读写(2)
- android 实现qq动画,Android实现仿QQ登录界面背景动画效果
- Python 结巴分词(jieba)Tokenize和ChineseAnalyzer的使用及示例代码
- ESP32 LVGL8.1 ——msgbox 消息框 (msgbox 28)