Usuário com melhor resposta
Criar Cursor

Pergunta
-
Olá pessoal, estou precisando criar um Cursor para rodar o seguinte comando :
Use 'NOME_DATABASE'
Dump transaction 'NOME_DATABASE' with no_log
Para pegar todos os databases, utilizo o comando abaixo :
select name from master.dbo.sysdatabases
A idéia é de criar um cursor para rodar o DUMP em todos os Databases do servidor... Alguém poderia me dar um help ?
Estou fazendo isso, pois o backup do Log, não está limpando os databases, somente se rodo o DUMP antes...
sábado, 4 de novembro de 2006 02:13
Respostas
-
O dump roda no 2000 so para manter a compatibilidade, o correto e usar o backup log truncate only segue script sem cursor mais usando while que eu acho mais leve que cursor.
Declare @Db Table (idx int identity(1,1), DbName Varchar(100))Insert into @Db (DbName) Select Name From Master..SysDatabases Where DbId >=5 order by Dbid
Declare @Start Int
Declare @End Int
Declare @Command Varchar(1000)
Select @start = 1, @End = Max(idx) From @DbWhile @Start <= @End
Begin
Select @Command = 'Backup Log ' + DbName + ' With Truncate_Only ' From @Db Where Idx = @Start
exec(@Command)
Select @Start = @Start + 1
End
Abs.
segunda-feira, 6 de novembro de 2006 02:34 -
veja se o auto srhink to seu banco esta ativo ( nas propriedades do banco na tab options ), ele nao vai truncar na hora mais depois ele reduz, o que vc. dazer e forcar um dbcc srhinkfile () e colocar dois exec´s dentro do mesmo loop.;
Abs;
segunda-feira, 6 de novembro de 2006 16:00
Todas as Respostas
-
O dump roda no 2000 so para manter a compatibilidade, o correto e usar o backup log truncate only segue script sem cursor mais usando while que eu acho mais leve que cursor.
Declare @Db Table (idx int identity(1,1), DbName Varchar(100))Insert into @Db (DbName) Select Name From Master..SysDatabases Where DbId >=5 order by Dbid
Declare @Start Int
Declare @End Int
Declare @Command Varchar(1000)
Select @start = 1, @End = Max(idx) From @DbWhile @Start <= @End
Begin
Select @Command = 'Backup Log ' + DbName + ' With Truncate_Only ' From @Db Where Idx = @Start
exec(@Command)
Select @Start = @Start + 1
End
Abs.
segunda-feira, 6 de novembro de 2006 02:34 -
Marcelo,
Quando faço o backup do Transaction log, o sistema não limpa o Log... Então, ele só limpa depois que rodo o Dump Transaction e depois dou o Shrink... Tem alguma idéia ?
Mais valeu pelo script, vai me ajudar muito...
segunda-feira, 6 de novembro de 2006 15:10 -
veja se o auto srhink to seu banco esta ativo ( nas propriedades do banco na tab options ), ele nao vai truncar na hora mais depois ele reduz, o que vc. dazer e forcar um dbcc srhinkfile () e colocar dois exec´s dentro do mesmo loop.;
Abs;
segunda-feira, 6 de novembro de 2006 16:00