我正在尝试从链接服务器执行完全备份数据库备份以在另一个服务器SAN上将E驱动器。没有找到任何帮助。链接的服务器SAPRS02工作并更改了RPC选项,但仍然不起作用。用于链接服务器访问的SQL Server 2008 R2 T-SQL备份脚本
任何帮助表示赞赏。
JJ
DECLARE @DateStr nvarchar(500), @ArchivePath nvarchar(500),
@FileName nvarchar(500), @DestFileName nvarchar(500),
@dbName nvarchar(255), @SvrName nvarchar(200),
@RADBACKUP nvarchar(MAX)
SET @dbName = 'MYDB'
SET @ArchivePath = 'E:\SQLBackups\MyDIR\'
SET @SvrName = REPLACE(@@SERVERNAME,'\','-')
SET @DateStr = CONVERT(NVARCHAR(20),GETDATE(),120)
SET @DateStr = REPLACE(REPLACE(REPLACE(REPLACE(@DateStr,'',''),':',''),'-','_'),' ','')
SET @FileName = @SvrName + '_' + @DBName + '_CopyOnly_backup_' + @DateStr + '.bak'
SET @DestFileName = @ArchivePath + @FileName
SET @RADBACKUP = 'BACKUP DATABASE @dbName
TO DISK = @DestFileName
WITH COMPRESSION
COPY_ONLY,
CHECKSUM, COMPRESSION,
NAME = @FileName, SKIP, STATS = 10'
--SELECT * FROM @RADBACKUP
EXECUTE SAPRS02.master.dbo.sp_executesql @RADBACKUP
ERROR是:
消息137,级别15,状态2,行1
必须声明标量变量 “@DbName”。
消息137,级别15,状态2,行1 必须声明标量变量 “@DbName”。 – user5495350
在@RADBACKUP中执行字符串时,那里没有任何变量的作用域。将它们连接为字符串或使用'sp_execute_sql'的参数功能。通过连接字符串,我的意思是这样做:'SET @RADBACKUP ='BACKUP DATABASE'+ @dbName +''+' –