
有人可以告訴我為什麼我無法使用下面的腳本備份資料庫嗎?我可以運行該腳本,但它沒有建立備份。
我正在使用 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'