我拷入别人创建的SQL Server 2000数据库(Motor),其文件是Motor_Data.MDF、Motor_Log.LDF这二个文件,如何将这二个文件导入SQL Server 2000?以便在其环境中作进一步处理。还有1、如果只有Motor_Data.MDF文件,没有日志文件Motor_Log.LDF,能否导入SQL Server 2000?2、如果Motor_Data.MDF文件与日志文件Motor_Log.LDF的创建日期不一致,能否导入SQL Server 2000?
调试欢乐多
1、把需要附加的数据库的MDF文件改名; 2、建一个相同的数据库。库文件名称为要附加的数据库名。 3、打开服务管理器(通常情况下应该在托盘),停止服务 3、将新建的数据库文件的MDF文件删掉,并将原有的数据库mdf文件该为原来的名字 4、重启sql server服务 ,此时数据库变为置疑状态 5、执行以下语句:
sp_configure 'allow updates', 1 reconfigure with override
update sysdatabases set status='32768' where name='databasename'
DBCC rebuild_log ('databasename','日志路径\databasename.ldf')
update sysdatabases set status='0' where name='databasename'
sp_configure 'allow updates', 0 reconfigure with override
重置数据库异常状态命令
sp_resetstatus 'database_name' 到此时,表面上数据库没有什么问题了,实际上此时数据库处于回避恢复模式。 新建一数据库,将原来的数据导入到新建的数据库中,完毕后将原来的数据库删除,新建, 然后将数据重新导入,就行了。 需要注意的是,SQL在进行数据导入导出的时候,原始表的主建信息会丢掉,所以需要注意以下。 SQL code简单来说就是1、建一个同名的数据库
2、修改服务器设置:允许多系统目录进行直接修改
3、停止SQL Server
4、用原mdf文件覆盖新建库的数据库文件
5、重启SQL Server(这时数据库应该是置疑)
6、将数据库置为紧急状态:update master.dbo.sysdatabases set status = 32768 where name = dbname
7、重建日志:dbcc rebulid_log('dbname', 'logfile') (可能不需要这一步。)
8、数据库重新启动,然后再还原数据库状态用以下语句
update master.dbo.sysdatabases set status = 16 where name = dbname
左边的树形目录中选中数据库,
点右键-所有任务-附加数据库-选择mdf文件,ok
sql中只有mdf文件时附加数据库,会报Error:不能使文件与不同的数据库相关
该问题可以尝试用如下步骤解决: 1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用要附加的数据文件覆盖掉这个新建的数据库 4.再重启sql server 5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名) USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1
GO
RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'
Go
sp_dboption '置疑的数据库名', 'single user', 'true'
Go
DBCC CHECKDB('置疑的数据库名')
Go
update sysdatabases set status =28 where name='置疑的数据库名'
Go
sp_configure 'allow updates', 0
GO
reconfigure with override
Go
sp_dboption '置疑的数据库名', 'single user', 'false'
Go 6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了.