使用 T-SQL 腳本進行資料庫備份 - 宣告和設定變數的問題

使用 T-SQL 腳本進行資料庫備份 - 宣告和設定變數的問題

有人可以告訴我為什麼我無法使用下面的腳本備份資料庫嗎?我可以運行該腳本,但它沒有建立備份。
我正在使用 SQL Server 2008

DECLARE @pathName NVARCHAR(512)
SET @pathName = 'C:\Backup\MyBackup.bak'

...

EXEC sp_add_jobstep
...
@command = 'BACKUP DATABASE MyBackup TO DISK = @pathName WITH INIT',
...

答案1

你看過嗎http://msdn.microsoft.com/en-us/library/ms187358%28v=sql.100%29.aspx

您似乎正在嘗試將局部變數插入 SQL Server 代理作業。

基於本節:

[ @command= ] '命令'

The commands to be executed by SQLServerAgent service through subsystem. 

指令為 nvarchar(max),預設值為 NULL。 SQL Server 代理程式提供標記替換,為您提供與編寫軟體程式時變數相同的彈性。

您可能想嘗試使用標記而不是局部變數。這篇文章對您來說可能是一個很好的起點: http://msdn.microsoft.com/en-us/library/ms175575%28v=sql.100%29.aspx

正如它所指出的,您的解決方案將看起來就像是:

@command = 'BACKUP DATABASE MyBackup TO DISK = $(ESCAPE_SQUOTE (@pathName)) WITH INIT'

相關內容