首页 服务 产品 文档 关于

MSSQLServer2000的数据库在MSSQLServer2008以上版本数据库无法附加的问题

可使用脚本附加

--2008恢复2000的数据库
--运行以下脚本
RESTORE DATABASE TYWZ     -- xxxx-改为你自己的数据名称
FROM DISK = 'C:\TYWZ.bak'   --bak文件路径 xxxx-改为你自己的数据名称
with replace,
MOVE 'TYWZ' TO 'C:\tywz\TYWZ.mdf',   --mdf文件路径--xxxx-改为你自己的数据名称
MOVE 'TYWZ_log' TO 'C:\tywz\TYWZ_log.ldf'   --ldf文件路径xxxx-改为你自己的数据名称

--提示找不到,原因是逻辑名不是脚本中的
--运行以下脚本,取得逻辑名
RESTORE FILELISTONLY 
FROM DISK = 'C:\TYWZ.bak'

--取得逻辑名显示为:
--TYWZGL_Data
--TYWZGL_Log


--运行以下脚本即可
--解决因为数据库正在使用,所以无法获得对数据库的独占访问权。
USE master
go
DECLARE @Sql NVARCHAR(max)
SET @Sql=''
select @Sql=@Sql+'kill '+cast(spid as varchar(50))+';' from sys.sysprocesses where dbid=DB_ID('TYWZ')
EXEC(@Sql)

--修复
RESTORE DATABASE TYWZ     -- xxxx-改为你自己的数据名称
FROM DISK = 'C:\TYWZ.bak'   --bak文件路径 xxxx-改为你自己的数据名称
with replace,
MOVE 'TYWZGL_Data' TO 'C:\tywz\TYWZ.mdf',   --mdf文件路径--xxxx-改为你自己的数据名称
MOVE 'TYWZGL_Log' TO 'C:\tywz\TYWZ_log.ldf'   --ldf文件路径xxxx-改为你自己的数据名称