--SQL Server 2000附加数据库--
/*
SQL Server 2000附加数据库时,由于只有mdf文件,而无ldf文件时;从而在附加时出现不少错误,一时难以解决
将需要在8.0的实例中执行下列操作,实现数据库的附加。
通常附加时出现的错误是由于数据库在不同的实例之间,以及不同版本实例之间转移而造成的。
*/
--1、新建一个同名的数据库,路径也要一致
CREATE DATABASE [SD201N_018]
ON (NAME=SD201N_018, FILENAME = N'D:\Program Files\SuperData\Data\SD201N_018.mdf' )
LOG ON (NAME=SD201N_018_Log, FILENAME = N'D:\Program Files\SuperData\Data\SD201N_018_log.ldf')
--2、停止SQL SERVER实例
--3、将备份的数据库MDF文件覆盖新建的同名数据库文件,并删除ldf文件
--4、启动SQL SERVER实例 (SD201N_018将变为不可用)
--open 'allow'
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
--update sys table and set the database status
update sysdatabases set status=32768 where name='SD201N_018'
--rebuild the database log
dbcc rebuild_log('SD201N_018','D:\Program Files\SuperData\Data\SD201N_018_log.ldf')
--change the database status
update sysdatabases set status=0 where name='SD201N_018'
--change the 'allow' value
sp_configure 'allow',0
reconfigure with override
--check the database
dbcc checkdb('SD201N_018')
select * from sysdatabases
--执行上述步骤后,数据库即可打开
--另:
--SQL Server 2005的一般步骤
--a)新建一个同名的数据库,路径一致
CREATE DATABASE [SD201N_018]
ON (NAME=SD201N_018, FILENAME = N'D:\Program Files\SuperData\Data\SD201N_018.mdf' )
LOG ON (NAME=SD201N_018_Log, FILENAME = N'D:\Program Files\SuperData\Data\SD201N_018_log.ldf')
--b) 停止SqlServer
--
--c) 将备份的数据库覆盖D:\Program Files\SuperData\Data\SD201N_018.mdf
--d) 启动SqlServer,(SD201N_018将变为不可用)
--查看数据库状态
SELECT * FROM SYS.DATABASES
SELECT * FROM sys.database_recovery_status
--e) 将数据库改为紧急恢复模式
ALTER DATABASE SD201N_018 SET EMERGENCY
--f) 修复数据库
DBCC CheckDB ('SD201N_018')
--g) 将数据库改为但用户模式
ALTER DATABASE SD201N_018 SET SINGLE_USER
--h) 再带参数修复数据库
DBCC CheckDB
--i) 将数据库改为正常模式
ALTER DATABASE SD201N_018 SET ONLINE
注:附加2000数据库时一般情况下都需要在8.0版本实例下进行,当附加到2005上去时就会出现错误。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9932141/viewspace-464488/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9932141/viewspace-464488/