2016-10-21 3 views
0

Я пытаюсь выполнить резервное копирование с полной копией только с связанного сервера, чтобы управлять 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".

+0

Msg 137, Level 15, состояние 2, строка 1 Необходимо объявить скалярную переменную "@dbName". – user5495350

+1

Когда вы выполняете строку в @RADBACKUP, на любой из переменных нет области видимости. Либо соедините их как строки, либо используйте параметр 'sp_execute_sql'. Посредством конкатенации в виде строк я имею в виду следующее: 'SET @RADBACKUP = 'BACKUP DATABASE' + @dbName + '' +' –

ответ

1
SET @RADBACKUP = 'BACKUP DATABASE ' + QUOTENAME(@dbName) + ' 
TO DISK = ''' + @DestFileName + ''' 
WITH COMPRESSION 
COPY_ONLY, 
CHECKSUM, COMPRESSION, 
NAME = ''' + @FileName + ''', SKIP, STATS = 10'; 
+0

Теперь я получаю это. Спасибо – user5495350

+0

Синтаксис Incorrec6 около 'Copy_Only'. – user5495350

+0

Мне просто не хватало запятой. Теперь, по какой-то причине, он пытается поставить резервную копию на диск H:. У меня нет привода H. Хм. Все еще исследование. – user5495350

Смежные вопросы