Я пытаюсь выполнить резервное копирование с полной копией только с связанного сервера, чтобы управлять E на других серверах SAN. Не найти никакой помощи. Связанный сервер SAPRS02 работает и изменяет параметры RPC, но все еще не работает.SQL Server 2008 R2 Сценарий резервного копирования T-SQL для доступа к Linked Server
Любая помощь приветствуется.
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
Ошибка:
Msg 137, Level 15, состояние 2, строка 1
Необходимо объявить скалярную переменную "@dbName".
Msg 137, Level 15, состояние 2, строка 1 Необходимо объявить скалярную переменную "@dbName". – user5495350
Когда вы выполняете строку в @RADBACKUP, на любой из переменных нет области видимости. Либо соедините их как строки, либо используйте параметр 'sp_execute_sql'. Посредством конкатенации в виде строк я имею в виду следующее: 'SET @RADBACKUP = 'BACKUP DATABASE' + @dbName + '' +' –