Niggaz Flavors Postado Agosto 29, 2008 Denunciar Share Postado Agosto 29, 2008 Boa Tarde galera, estou chegando agora e gostaria de uma ajuda se possivel...Estou tentando fazer um job para realizar um backup de todas as bases existentes no banco. Eu não sei praticamente nada sobre sql server...tentei criar o seguinte script:DECLARE DATABASES FOR SELECT NAME FROM SYSDATABASESDECLARE @NAMESOPEN DATABASESFETCH NEXT FROM DATABASES INTO @NAMESWHILE @@FETCH_STATUS = 0 BEGIN BACKUP DATABASE @NAMES TO DISK = 'G:\TESTE\'+@NAMES+'.BAK' WITH FORMAT, NAME = @NAMES+'.BAK',INIT ENDCLOSE DATABASESDEALLOCATE DATABASESo que tem de errado com ele? alguém poderia me ajudar?Desde já agradeço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jothaz Postado Agosto 29, 2008 Denunciar Share Postado Agosto 29, 2008 Posts o erro retornado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Niggaz Flavors Postado Setembro 1, 2008 Autor Denunciar Share Postado Setembro 1, 2008 Retorna esses erros:Server: Msg 137, Level 15, State 1, Line 2Must declare the variable '@NAMES'.Server: Msg 137, Level 15, State 1, Line 5Must declare the variable '@NAMES'.Server: Msg 137, Level 15, State 1, Line 7Must declare the variable '@NAMES'. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jothaz Postado Setembro 1, 2008 Denunciar Share Postado Setembro 1, 2008 Não testei porque não tenho acesso a SQL server aqu no trampo mas tente algo assim:declare @comando varhcar(2000) DECLARE DATABASES FOR SELECT NAME FROM SYSDATABASES DECLARE @NAMES OPEN DATABASES FETCH NEXT FROM DATABASES INTO @NAMES WHILE @@FETCH_STATUS = 0 BEGIN set @comando = 'BACKUP DATABASE @NAMES TO DISK = G:\TESTE\'+@NAMES+'.BAK WITH FORMAT, NAME = ' + @NAMES + ' .BAK,INIT' EXEC(@comando) END CLOSE DATABASES DEALLOCATE DATABASES Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Niggaz Flavors Postado Setembro 1, 2008 Autor Denunciar Share Postado Setembro 1, 2008 (editado) Opa, to mudando aqui...então, eu percebi q faltava uma coisa...no caminho para onde o backup vai, tem q ter aspas simples, ai eu modifiquei o script :DECLARE DATABASES CURSOR FOR SELECT NAME FROM SYSDATABASESDECLARE @NAMES VARCHAR(100)DECLARE @COMANDO VARCHAR(200)OPEN DATABASESFETCH NEXT FROM DATABASES INTO @NAMESWHILE @@FETCH_STATUS = 0BEGIN SET @COMANDO = 'BACKUP DATABASE '+@NAMES+' TO DISK = '+ '''G:\TESTE\'''+@NAMES+'''.BAK'''+ 'WITH FORMAT, NAME = '+@NAMES+'''.BAK'''+' ,INIT' EXECUTE (@COMANDO) FETCH NEXT FROM DATABASES INTO @NAMESENDCLOSE DATABASESDEALLOCATE DATABASESporem agora, o erro é outro...rsele reclama do nome das bases:Server: Msg 170, Level 15, State 1, Line 1Line 1: Incorrect syntax near 'CIAP'.Server: Msg 170, Level 15, State 1, Line 1Line 1: Incorrect syntax near 'master'.Server: Msg 170, Level 15, State 1, Line 1Line 1: Incorrect syntax near 'model'.TEM IDEIA DO Q PODE SER?? Editado Setembro 1, 2008 por Niggaz Flavors Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Niggaz Flavors Postado Setembro 1, 2008 Autor Denunciar Share Postado Setembro 1, 2008 Bom galera, consegui resolver a parada aqui.O script se perdia nas aspas simples...agora ta funcionando!Pra que quiser, ta ai:USE MASTERDECLARE DATABASES CURSOR FOR SELECT NAME FROM SYSDATABASESDECLARE @NAMES VARCHAR(100)DECLARE @COMANDO VARCHAR(200)OPEN DATABASESFETCH NEXT FROM DATABASES INTO @NAMESWHILE @@FETCH_STATUS = 0BEGIN-- SELECT @NAMES = 'UNIS0001' SET @COMANDO = 'BACKUP DATABASE '+@NAMES+' TO DISK = '+'''G:\TESTE\'+@NAMES+'.BAK'''+ 'WITH FORMAT, NAME = '+''''+@NAMES+'.BAK'''+' ,INIT' EXECUTE (@COMANDO)FETCH NEXT FROM DATABASES INTO @NAMESENDCLOSE DATABASESDEALLOCATE DATABASES[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jothaz Postado Setembro 1, 2008 Denunciar Share Postado Setembro 1, 2008 Como não testei não percebi a parada as aspas.Que bom q resolveu. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Niggaz Flavors
Boa Tarde galera, estou chegando agora e gostaria de uma ajuda se possivel...
Estou tentando fazer um job para realizar um backup de todas as bases existentes no banco.
Eu não sei praticamente nada sobre sql server...tentei criar o seguinte script:
DECLARE DATABASES FOR SELECT NAME FROM SYSDATABASES
DECLARE @NAMES
OPEN DATABASES
FETCH NEXT FROM DATABASES INTO @NAMES
WHILE @@FETCH_STATUS = 0
BEGIN
BACKUP DATABASE @NAMES TO DISK = 'G:\TESTE\'+@NAMES+'.BAK'
WITH FORMAT, NAME = @NAMES+'.BAK',INIT
END
CLOSE DATABASES
DEALLOCATE DATABASES
o que tem de errado com ele? alguém poderia me ajudar?
Desde já agradeço
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.