请问我想在同一台SQL SERVER服务器上,复制一个叫meishiwang的数据库为trade1该怎么做?

ynduanlian 2015-11-30 12:10:12
网上百度到的代码:
BACKUP DATABASE meishiwang TO DISK = N'c:\dbname.bak';

RESTORE DATABASE trade1 FROM DISK = 'C:\dbname.bak' with replace;

执行第二句时报下面的错:
消息 1834,级别 16,状态 1,第 3 行
无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\meishiwang.mdf'。数据库 'meishiwang' 正在使用该文件。
消息 3156,级别 16,状态 4,第 3 行
文件 'meishiwang' 无法还原为 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\meishiwang.mdf'。请使用 WITH MOVE 选项来标识该文件的有效位置。
消息 1834,级别 16,状态 1,第 3 行
无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\meishiwang_log.ldf'。数据库 'meishiwang' 正在使用该文件。
消息 3156,级别 16,状态 4,第 3 行
文件 'meishiwang_log' 无法还原为 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\meishiwang_log.ldf'。请使用 WITH MOVE 选项来标识该文件的有效位置。
消息 3119,级别 16,状态 1,第 3 行
在计划 RESTORE 语句时发现了问题。以前的消息提供了详细信息。
消息 3013,级别 16,状态 1,第 3 行
RESTORE DATABASE 正在异常终止。
...全文
99 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yole 2015-11-30
  • 打赏
  • 举报
回复


/*
利用bak恢复数据库,强制还原(REPLACE)
STATS = 10 每完成10%显示一条记录
DBTest和DBTest_log是上面g:\back.Bak里的逻辑文件
*/
USE master
RESTORE DATABASE DB 
   FROM DISK = 'g:\back.Bak'
   WITH MOVE 'DBTest' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DB.mdf', 
   MOVE 'DBTest_log' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DB_log.ldf',
STATS = 10, REPLACE
GO


/*
备份数据DB 到.bak文件。然后利用此bak文件恢复一个新的数据库DBTest。
*/
USE master
BACKUP DATABASE DB 
  TO DISK = 'g:\DBBack0930.bak' 
RESTORE FILELISTONLY 
  FROM DISK = 'g:\DBBack0930.bak' 
RESTORE DATABASE DBTest 
  FROM DISK = 'g:\DBBack0930.bak' 
  WITH MOVE 'DBTest' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DBTest.mdf', 
  MOVE 'DBTest_log' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DBTest_log.ldf'
GO 

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧