簡體   English   中英

如何解決我遇到的這個 SQL 服務器錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM