Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

_IRON

Variável Escalar

Recommended Posts

Boa tarde.

Estou escrevendo um script de backup e recebendo a seguinte mensagem de erro:

Msg 137, Level 15, State 2, Line 7

Must declare the scalar variable "@arquivo_DIF".

 

É um script para restore de Backups FULL e Diferencial.

Se executar os Backups separadamente funcionam, mas no script está dando este erro.

 

o código posto abaixo:

Declare @pasta char(3),
       @arquivo_FULL varchar(255),
       @arquivo_DIF varchar(255),
       @caminho varchar(255)

set @pasta = case datepart( dw, getdate() )
                 when '1' then 'Dom' when '2' then 'Seg' when '3' then 'Ter' when '4' then 'Qua'
                 when '5' then 'Qui' when '6' then 'Sex' when '7' then 'Sab'
            end

set @caminho = 'T:\Backup\' + @pasta + '\'

set @arquivo_FULL = @caminho + 'bkpFULL_'+ 'db1' + '_' + @pasta + '_00_00.BAK'
set @arquivo_DIF = @caminho + 'bkpDIF_' + 'db1' + '_' + @pasta + '_06_01.BAK'

use master
RESTORE DATABASE [db1_teste]
FROM  DISK = @arquivo_FULL
WITH STATS = 5, FILE = 1,  MOVE N'DB1_Novo_Data' TO N'D:\Dados\DB1_Teste.MDF',  MOVE N'DB1_Novo_Log' TO N'L:\Log\DB1_Teste.LDF'
,  NORECOVERY,  NOUNLOAD,  REPLACE
GO

/*  - Restaurando o Diferencial */

use master
RESTORE DATABASE [DB1_Teste]
FROM  DISK = @arquivo_DIF
WITH STATS = 3, FILE = 1,  MOVE N'DB1_Novo_Data' TO N'D:\Dados\DB1_Teste.MDF',
MOVE N'DB1_Novo_Log' TO N'L:\Log\DB1_Teste.LDF',NORECOVERY
GO


RESTORE DATABASE DB1_Teste WITH RECOVERY
GO

 

Se alguem tiver uma boa dica agradeço

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

_IRON

 

Bem vindo ao fórum Imasters!

Seguinte,

Qdo você esta restaurando /* - Restaurando o Diferencial */

Você tem um GO antes.

Olha o que o Books OnLine diz sobre o GO:

Os utilitários SQL Server interpretam GO como um sinal de que eles devem enviar o lote atual de instruções Transact-SQL para uma instância do SQL Server. O lote atual de instruções é composto de todas as instruções digitadas desde o último GO, ou desde o início da sessão ad hoc ou script, se esse for o primeiro GO.

 

Uma instrução Transact-SQL não pode ocupar a mesma linha que um comando GO. No entanto, a linha pode conter comentários.

 

 

Creio que no seu caso, pode-se comenta-lo

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.