![](/img/trans.png)
[英]I'm trying to find a group of objects with similar names in SQL ORACLE but i'm getting an error that i can't solve
[英]How to solve this SQL Server error I'm getting?
正如您在下面看到的,我正在嘗試通過傳遞兩個參數來執行存儲過程,但出現類似錯誤
消息 102,第 15 級,State 1,第 19 行
'C:\SQL_Backup\Test.bak' 附近的語法不正確。
代碼:
EXEC Proc_RestoreSQL_Database ('C:\SQL_Backup\Test.bak','DMTest')
正在執行的存儲過程:
ALTER PROCEDURE [dbo].[Proc_RestoreSQL_Database]
@DISK nvarchar(1000),
@DBName varchar(1000)
AS
BEGIN
-- Create DB with script(DMUtilityTest)
CREATE DATABASE [@DBName]
-- restore
RESTORE DATABASE [@DBName]
FROM DISK = N'@DISK'
END
如果您要立即恢復數據庫,則無需CREATE
數據庫。
直接執行restore就好了。 不要將數據庫名稱參數包含在[]
中,也不要將文件名參數包含在引號''
中,只有在嵌入實際名稱而不是參數時才需要它。
您還應該使用更合理的參數類型
CREATE OR ALTER PROCEDURE [dbo].[Proc_RestoreSQL_Database]
@DISK nvarchar(255),
@DBName sysname
AS
RESTORE DATABASE @DBName
FROM DISK = @DISK;
GO
這顯然假設您要恢復到同一位置。 您可能希望使用MOVE TO @newFile
傳遞新位置
要執行它,再次不要用括號()
換行,只需指定參數名稱
EXEC Proc_RestoreSQL_Database @DISK = 'C:\SQL_Backup\Test.bak', @DBName = 'DMTest';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.