Sql server 执行创建备份并使用新名称恢复备份的SP时出现以下错误

Sql server 执行创建备份并使用新名称恢复备份的SP时出现以下错误,sql-server,Sql Server,有人能帮我找到下面SP中的错误吗 USE [master] GO /****** Object: StoredProcedure [dbo].[CopyDB] Script Date: 08/22/2011 12:20:33 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER procedure [dbo].[CopyDB](@DBName varchar(100),@Newname varchar(100)) a

有人能帮我找到下面SP中的错误吗

USE [master]
GO
/****** Object:  StoredProcedure [dbo].[CopyDB]    Script Date: 08/22/2011 12:20:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[CopyDB](@DBName varchar(100),@Newname varchar(100))
as
DECLARE @FileName AS nvarchar(4000)
set @FileName = 'D:\'+@DBName+'.bak'
/*Backup the database*/
BACKUP DATABASE @DBName
TO DISK = @FileName
WITH CHECKSUM, INIT;
/*to restore it with new name*/
declare @st1 varchar(100)
declare @st2 varchar(100)
set @st1 = 'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\'+@Newname+'.mdf';
set @st2 = 'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\'+@Newname+'_log.LDF';
declare @DBName_Log varchar(100)
set  @DBName_Log = @DBName+'_Log'
RESTORE database @Newname
FROM DISK = @FileName
with 
MOVE @DBName TO @st1,
MOVE @DBName_Log TO @st2,
CHECKSUM;
我得到下面的错误

Msg 5133, Level 16, State 1, Procedure CopyDB, Line 34
Directory lookup for the file "C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\back.mdf" failed with the operating system error 3(The system cannot find the path specified.).
Msg 3156, Level 16, State 3, Procedure CopyDB, Line 34
File 'pubs' cannot be restored to 'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\back.mdf'. Use WITH MOVE to identify a valid location for the file.
Msg 5133, Level 16, State 1, Procedure CopyDB, Line 34
Directory lookup for the file "C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\back_log.LDF" failed with the operating system error 3(The system cannot find the path specified.).
Msg 3156, Level 16, State 3, Procedure CopyDB, Line 34
File 'pubs_log' cannot be restored to 'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\back_log.LDF'. Use WITH MOVE to identify a valid location for the file.
Msg 3119, Level 16, State 1, Procedure CopyDB, Line 34
Problems were identified while planning for the RESTORE statement. Previous messages provide details.
Msg 3013, Level 16, State 1, Procedure CopyDB, Line 34
RESTORE DATABASE is terminating abnormally.

您是否检查了此路径:

C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\

?

它存在吗


尝试将数据库恢复到另一个地方只是为了实验。

我创建了这个过程并运行了它-没有任何异常。。。但后来我把路径改成了错误的路径,收到了你们的异常。我能够做到,当我不使用脚本时。但是,当生成脚本并将其放入SP时,出现了错误。是否创建了没有任何错误的备份?到'D:\'+@DBName+'.bak'