关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL Server »MS SQL Server问题与其正确解答方案

    MS SQL Server问题与其正确解答方案

    2010-07-12 17:18:00 出处:ITJS
    分享

    以下的文章主要向大家讲述的是MS SQL Server问题与其正确解答方案,MS SQL Server在实际操作中我们经常会遇到一些问题,你是否对其头疼至极,以下的文章主要是对这些问题的实际解答。

    MS SQL Server问题一、数据库恢复时出现诸如“设备激活错误,请使用with move选项来标志该文件的有效位置”报错的解决方法

    MS SQL Server问题一、数据库恢复时出现诸如“设备激活错误,请使用with move选项来标志该文件的有效位置”报错的解决方法

    别人将一个数据库备份发给了我,我为了看里面的表,所以我就在我机器里装一个MSSQL数据库。现在我想把保存的这个备份数据库 caiwu.db 导入到我的 MS SQL数据库中,发现在企业管理器中,操作:所有任务——>还原数据库——>选择“从设备”还原,在硬盘里找到了那个备份数据库文件caiwu.db,导入。报错:设备激活错误,请使用with move选项来标志该文件的有效位置。

    解决方法:右键点“数据库”(注意不是某个特定的数据库)--》所有任务--》还原数据库--》选择“从设备”还原,选择要还原成的数据库名,然后在选项卡中,选择最现有数据库上强制还原数据库,然后在下面修改数据库还原后的物理路径,这个路径要是存在的一个路径,否则就会出现上面的错误,逻辑文件名可以不用改。

    MS SQL Server问题三、怎么样把sql server 2000的用户表的所有者,改成dbo,而不是用户名。

    (附修改存储过程的方法,在查询器中执行:

    EXEC sp_changeobjectowner 'usera.hishop_creatorder', 'dbo'),就把 usera的存储过程改为dbo所有了。

    答:方法一:右键点击该表-》设计表,在上面的一排小图标中,点最后一个“条件约束”,点“表”页,在里面更改所有者。(若没有条件约束的小图标,可以点右键,能看到一个“check约束”的选项)

    方法二:利用脚本直接执行,用系统帐号或者超户登陆到该数据库,然后执行下面语句:

    sp_configure 'allow updates','1'  go  reconfigure with override  go  update sysobjects set uid=1 where uid<>1   go  sp_configure 'allow updates','0'  go  reconfigure with override 

    第二种方法只能使用一次,第二次使用会出错。

    三、只有mdf和ldf文件,甚至只有mdf文件,如何恢复数据库

    1. 首先确认已经备份了.mdf和.ldf文件。

    2. 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。

    3. 用原有的.mdf和.ldf文件覆盖新建数据库对应的.mdf和.ldf文件。

    4. 重新启动SQL Server服务,这是应该会看到这个数据库处于置疑(Suspect)状态。(人品好的话,这个时候数据库就已经恢复正常了,上次xrf的数据库就是这样被我恢复的。人品不好的话,下面的步骤也不行,我有一次就是找了一个北京做数据恢复的公司才恢复完毕。)

    5. 在SQL查询分析器中执行以下命令,以允许更新系统表:

    use master  go  sp_configure ‘allow updates’,1  reconfigure with override  go  

    6. 将这个数据库置为紧急模式:

    update sysdatabases set status = 32768 where name = 'db_name' go  

    7. 使用DBCC CHECKDB命令检查数据库中的错误:

    DBCC CHECKDB(‘db_name’)  GO  

    8. 假如DBCC CHECKDB命令失败,请转至第10步,否则先将数据库置为单用户模式,再尝试对其进行修复:

    sp_dboption 'db_name',’single user’,’true’  DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)  GO  

    假如在执行DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话,则重新启动SQL Server服务,然后继续尝试。

    9. 假如DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令失败,请转至第10步,否则若成功修复了数据库中的错误:

    重新执行DBCC CHECKDB(‘db_name’)命令,确认数据库中已没有错误存在。

    清除数据库的置疑状态:sp_resetstatus 'db_name'

    清除数据库的单用户模式状态:sp_dboption 'db_name',’single user’,’false’

    重新启动SQL Server服务,假如一切正常的话,则数据库已经成功恢复。

    10. 假如以上步骤都不能解决问题的话,请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据。

    假如您只有MDF文件,问题就更加复杂一些,我们需要直接重建事务日志了:

    1. 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。

    2. 用原有的ldf文件覆盖新建数据库对应的.mdf文件,将其日志文件(.ldf)删除。

    3. 启动SQL Server服务,并将数据库置为紧急模式(同上: 步骤5和步骤6)。

    4. 停止并重新启动SQL Server服务。

    5. 执行以下命令重建数据库日志文件:(下面是个示例,您要用您实际的数据库名)

    DBCC REBUILD_LOG(’cas_db’, 'D:cas_dbcas_db_Log.LDF') 

    6. 重新将该数据库置为单用户模式。(http://support.microsoft.com/ id=264154)

    7. 再次尝试使用DBCC CHECKTABLE或DBCC CHECKDB命令检查并修复数据库中的错误

    该文文章来源于:开发学院 http://edu.codepub.com 原文链接:http://edu.codepub.com/2009/0714/9655.php

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    IT头条

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    严重缩水!NVIDIA将推中国特供RTX 5090 DD:只剩24GB显存

    00:17

    无线路由大厂 TP-Link突然大裁员:补偿N+3

    02:39

    Meta 千万美金招募AI高级人才

    00:22

    技术热点

    微软已修复windows 7/windows 8.1媒体中心严重漏洞 用户可下载安

    卸载MySQL数据库,用rpm如何实现

    windows 7中使用网上银行或支付宝支付时总是打不开支付页面

    一致性哈希算法原理设计

    MySQL数字类型中的三种常用种类

    如何解决SQL Server中传入select语句in范围参数

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。