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

 更新时间:2022年01月28日 15:43:15   作者:狂野的老娘舅  
本文主要介绍了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数据库了:

在这里插入图片描述

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

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

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

相关文章

  • 启动sqlserver服务的bat脚本分享

    启动sqlserver服务的bat脚本分享

    这篇文章主要介绍了启动sqlserver服务的bat脚本分享,本文直接给出脚本代码,需要的朋友可以参考下
    2015-02-02
  • sql数据库修改sa密码操作教程

    sql数据库修改sa密码操作教程

    本文将介绍SQL Server Sa用户的密码修改方法,需要了解更多的朋友可以参考下
    2012-11-11
  • SQL语句删除2条重复数据一条保留一条

    SQL语句删除2条重复数据一条保留一条

    SQL语句2条完全一样的数据删除一条保留一条,SQL Server 2005 Express 下测试通过, 仅供参考
    2012-06-06
  • sql server导入、导出数据库详细步骤记录

    sql server导入、导出数据库详细步骤记录

    这篇文章主要给大家介绍了关于sql server导入、导出数据库的相关资料,SQL Server 导入和导出向导是一种使你可以将数据从源复制到目标的工具,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • SQL Server 提取数字、提取英文、提取中文的sql语句

    SQL Server 提取数字、提取英文、提取中文的sql语句

    这篇文章主要介绍了SQL Server 提取数字、提取英文、提取中文 ,需要的朋友可以参考下
    2014-10-10
  • SQL Server 树形表非循环递归查询的实例详解

    SQL Server 树形表非循环递归查询的实例详解

    这篇文章主要介绍了SQL Server 树形表非循环递归查询的实例详解的相关资料,本文介绍的非常详细具有参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • MSSQL自动重建出现碎片的索引的方法分享

    MSSQL自动重建出现碎片的索引的方法分享

    无论何时对基础数据执行插入、更新或删除操作,SQL Server 数据库引擎都会自动维护索引。随着时间的推移,这些修改可能会导致索引中的信息分散在数据库中(含有碎片)。当索引包含的页中的逻辑排序(基于键值)与数据文件中的物理排序不匹配时,就存在碎片。碎片非常多的索引可能会降低查询性能,导致应用程序响应缓慢。
    2014-06-06
  • sqlserver 模糊查询常用方法

    sqlserver 模糊查询常用方法

    LIKE 关键字搜索与指定模式匹配的字符串、日期或时间值。LIKE 关键字使用常规表达式包含值所要匹配的模式。模式包含要搜索的字符串,字符串中可包含四种通配符的任意组合。
    2010-09-09
  • 在sql查询中使用表变量

    在sql查询中使用表变量

    在sql查询中使用表变量,需要的朋友可以参考下。
    2010-06-06
  • SQL SERVER服务器部署IP查询方法详解

    SQL SERVER服务器部署IP查询方法详解

    这篇文章主要为大家介绍了SQL SERVER服务器部署IP查询示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01

最新评论