数据库怎么不能附加
- 提问者网友:心裂忍耐
- 2021-12-13 23:45
- 二级知识专家网友:邪性洒脱
- 2021-12-14 00:18
以下先介绍下网络上的一个解决方法,我未实践过,不知道是否可行。
附加数据库 对于 服务器“***”失败。 (Microsoft.SqlServer.Smo)
无法升级数据库 ‘******’,因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)
查看了数据库文件,他们并没有只读属性,在 SQL Server 2000 中附加都是一切正常的啊。点击错误消息对话框的帮助链接
其实这个错误并不是文件只读的问题,严格说应该是一个“权限”的问题,当前的 SQL Server 登录帐号没有对要附加文件的可写权限,就会出现上述“只读”的提示,解决办法有以下几种:
将要附加的文件拷贝到 SQL Server 默认的 Data 目录,此时附加就会成功;
在登录验证时,选择“Windows 身份验证”,而不是“SQL Server 身份验证”,即便你的登录帐号是 sa;
如果一定要使用“SQL Server 身份验证”,请更改登录帐号的权限使其对要附加文件有完全操作权限;
将 SQL Server 服务的帐户登录身份由 Network Service 改为 Local Service;
- 1楼网友:年轻没有失败
- 2021-12-14 01:12
数据库文件被破坏.
网上搜到一个方法,你试一下
给你一个方法吧,我以前遇到的比你遇到的还麻烦: 第一步:停掉sql sever服务 把不能用的这个数据库的所有文件(数据文件、日志文件移走),假设你的这个数据库叫demo 重新建立一个同名的数据库demo,并且所有的新的数据文件的名字都和原来的数据文件的名字一样,文件组也一样。然后把sql server停掉,把原来的数据库文件都覆盖回来,重新启动,这个时候数据库demo在企业管理器里面应该是质疑状态。 第二步:把数据库设置为紧急模式: user master sp_configure 'allow update',1 reconfigure with overirde go 执行结果: dbcc 执行完毕。如果 dbcc 输出了错误信息,请与系统管理员联系。 已将配置选项 'allow updates' 从 0 改为 1。请运行 reconfigure 语句以安装。 接着 update sysdatabases set status=32768 where name='demo' 第三步:把书库demo设置为单一模式, sp_dboption 'demo','single user','true' 第四部:检查损坏的数据块,并修复 dbcc checkdb (''demo) 然后 sp_configure 'allow updates', 0 reconfigure with override go” 最后建立一个demo.lost的数据库 dts导出向导 运行dts导出向导,把demo里面还能用的数据导入到demo.lost的数据库中! 把原来的demo数据库文件删除,把demo..lost数据库更名为demo over!!!