sqlserver出现数据库不能附加怎么回事
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver出现数据库不能附加怎么回事相关的知识,希望对你有一定的参考价值。
打开sqlserver management studio,登录身份选择windows身份验证,点击连接进入管理器中,选择数据库,右键,在弹出的菜单选择“附加”,如图所示,选择要附加的文件后,点击附加,如果没有报错,则完成附加,否则,需要接下来的数据修复。
报错,附加失败后,请新建数据库,且要与要附加的数据库同名。如要附加的数据库为skhprint,要新建的数据库名也要命名为skhprint,如图,点击确定,完成数据库创建
停止数据库
将原mdf文件,如skhprint.mdf复制到新创建的数据库所在目录中,之后,开启服务器
这是,会发现skhprint质疑,接下来要打开查询分析器,输入如下代码:
use master
--declare @databaseName varchar(50)
--set @databaseName=\'skhprint\'
--1修改服务器设置:允许对系统目录进行直接修改
sp_configure \'allow updates\',1 reconfigure with override
--2将数据库置为紧急状态
update master.dbo.sysdatabases set status = 32768 where name = \'skhprint\'
--3删除新的ldf文件,重建日志:
dbcc rebuild_log(\'skhprint\', \'f:\\skhprint_log_new.ldf\')--假设把新日志在f盘
update master.dbo.sysdatabases set status = 16 where name = \'skhprint\'
--4修改服务器设置:取消 允许对系统目录进行直接修改
sp_configure \'allow updates\', 0 reconfigure with override
--再使用检查工具修复错误 dbcc
--5设置为单用户模式
alter database skhprint set single_user with rollback immediate
--6 修复数据库
dbcc checkdb (\'skhprint\',REPAIR_ALLOW_DATA_LOSS)
--7 设置为多用户模式
alter database skhprint set multi_user
--执行完毕之后,如果还有错误,重复执行6,直到没有错误为止。
--根据提示操作
--如果没有其他问题,则修复成功! 参考技术A 从名字上我们就能看出来,它是一个追加写入的日志文件。与一般数据库的binlog不同的是,AOF文件是可识别的纯文本,它的内容就是一个个的Redis标准命令。
SQL SERVER 2008 R2 数据库附加到 SQL server 2005,怎么整
很着急,请尽可能详细!
不能直接完成这样的任务。高版本的文件不能被低版本的SQL正常识别使用。可以试着在SQL2008中导出数据库构架的脚本后,在SQL2005中生成空数据库,然后再把数据导过去。数据库不多的数据库可以直接导出成脚本后,在SQL2005中直接生成。具体方法如下:
一、最简单的回答:
1、利用脚本来实现。
2、存在大量数据的数据库,比如数据库中存在记录数过万条的数据表,实现起来可能非常慢,且可能出错,没法进行下去。
二、SQL Server2008数据导入到SQL Server2005具体方法:
1、打开SQL Server2008“对象资源管理器”;
2、右击数据库,如:cadERP的数据库,选择“任务”--“生成脚本”;
3、打开生成和脚本发生窗口后点击“下一步”;
4、进入“选择特定数据库对象”,选择“全选”表--“下一步”;
5、进入“设置脚本编写选项”,选择“高级”--找到“为服务器版本编写脚本”项选择“SQL Server 2005”--“下一步”完成;
6、此时打开SQL Server2005,创建一个和SQL2008生成的脚本文件名相同的数据库,选择“新建查询”,把SQL2008生成的脚本文件直接拖到新建查询窗口中,执行“F5”。
这个时候SQL Server2005中的数据和SQL Server2008中的数据就完全相同啦。
三、其后又出了SQL2008R2相对SQL2005来说,没有根本性的改动,基本全兼容于
2005版,只在可靠性、成熟度上作了很大的改进,所以,如果可能,直接用SQL2008代替SQL2005,是最好的办法。 参考技术A 将 SQL SERVER 2008 R2 数据库表中需要的数据导出并保存为 TXT 格式;连接并打开 SQL server 2005 数据库表,导入 TXT 格式的数据。 参考技术B 附加不了,高版本数据库,低版本用不了,你只能做数据库复制。
以上是关于sqlserver出现数据库不能附加怎么回事的主要内容,如果未能解决你的问题,请参考以下文章
SQL2005在附加数据库的时候出现无法打开物理文件,操作系统拒绝,这是怎么回事?有啥好的方法可以解决?
为啥sql server 高版本的数据库不能附加低版本 mdf文件?
SQL server 2008 r2附加数据库出现错误了,见下图,怎么解决?求帮助!!!!!