在 SQL 服务器存储过程中使用变量时出错
Error while using variable in SQL Server stored procedure
我正在尝试对数据库进行完整备份,但收到一条错误消息,提示我必须声明标量变量。以下是我的代码;我不知道我是否在存储过程参数中使用变量。任何帮助将不胜感激
DECLARE @backupfilename VARCHAR(1000)
DECLARE @path VARCHAR(1000)
SET @backupfilename='C:\SqlBackups\AdventureWorks\Full\backup_' + CONVERT (VarChar, GetDate(), 112) + '.bak'
SET @path = 'BACKUP DATABASE AdventureWorks2012 TO DISK = @backupfilename'
EXEC msdb.dbo.sp_add_jobstep
@job_name = 'BackupDatabase',
@step_name = 'Weekly Full Backup',
@subsystem = 'TSQL',
@command = @path;
您收到错误消息,因为您的作业步骤命令包含字符串 @backupfilename
,这是一个未在此命令的上下文中定义的变量。如果我没记错的话 sp_add_jobstep
不支持将参数传递给此命令的方式,因此您需要创建不带参数的命令字符串:
set @path ='BACKUP DATABASE AdventureWorks2012 TO DISK ='''+ @backupfilename + ''''
这里我连接了字符串并添加了引号。
我正在尝试对数据库进行完整备份,但收到一条错误消息,提示我必须声明标量变量。以下是我的代码;我不知道我是否在存储过程参数中使用变量。任何帮助将不胜感激
DECLARE @backupfilename VARCHAR(1000)
DECLARE @path VARCHAR(1000)
SET @backupfilename='C:\SqlBackups\AdventureWorks\Full\backup_' + CONVERT (VarChar, GetDate(), 112) + '.bak'
SET @path = 'BACKUP DATABASE AdventureWorks2012 TO DISK = @backupfilename'
EXEC msdb.dbo.sp_add_jobstep
@job_name = 'BackupDatabase',
@step_name = 'Weekly Full Backup',
@subsystem = 'TSQL',
@command = @path;
您收到错误消息,因为您的作业步骤命令包含字符串 @backupfilename
,这是一个未在此命令的上下文中定义的变量。如果我没记错的话 sp_add_jobstep
不支持将参数传递给此命令的方式,因此您需要创建不带参数的命令字符串:
set @path ='BACKUP DATABASE AdventureWorks2012 TO DISK ='''+ @backupfilename + ''''
这里我连接了字符串并添加了引号。