我已經寫了下面的SP並獲得以下錯誤。任何人都可以幫我找到錯誤。錯誤書面的程序來備份和恢復數據庫
create procedure CopyDB(@DBName varchar(100),@Newname varchar(100))
as
DECLARE @FileName AS nvarchar(4000)
set @FileName = 'D:\'[email protected]+'.bak'
/*Backup the database*/
BACKUP DATABASE @DBName
TO DISK = @FileName
WITH CHECKSUM, INIT;
/*to restore it with new name*/
RESTORE database @Newname
FROM DISK = @FileName
with
MOVE @DBName TO 'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\'[email protected]+'.mdf',
MOVE @DBName TO 'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\'[email protected]+'_log.LDF',
CHECKSUM;
錯誤信息是:
消息102,級別15,狀態1,過程COPYDB,線13附近 '+' 不正確的語法。
我有以下錯誤。在數據庫'Amrutha'上處理168頁,在文件1上處理'Amrutha'。在數據庫'Amrutha'處處理1頁,在文件1上處理'Amrutha_log'。BACKUP DATABASE在0.213秒(6.198 MB /秒)中成功處理了169頁。 Msg 4353,Level 16,State 1,Procedure CDB,Line 15文件'Amrutha'指定了衝突文件重定位。應該爲任何邏輯文件名稱指定一個WITH MOVE子句。消息3013,級別16,狀態1,過程CDB,行15 RESTORE DATABASE異常終止。 – Shine
我編輯了答案。我想你最好自動生成腳本。 –
: - 我如何自動生成。你能否給我一個想法去做。 – Shine