declare @chemin_svg nvarchar(max)
set @chemin_svg = 'e:SQLLog' mettre un chemin valide
DECLARE @t_bdd TABLE( ligne int identity(1,1), id_bdd int, name varchar(max))
INSERT @t_bdd( id_bdd, name ) select database_id, name from sys.databases where database_id > 4 passer eventuellement le nom de ta base en question à nettoyer
DECLARE @k Int
declare @id_bdd int
declare @name varchar(max)
WHILE EXISTS( select id_bdd from @t_bdd)
BEGIN
SELECT TOP 1 @k = ligne, @id_bdd = id_bdd , @name = name FROM @t_bdd
--traitement
declare @chemin_svg_bdd nvarchar(max)
set @chemin_svg_bdd = @chemin_svg + @name
declare @req nvarchar(max)
set @req = 'USE ['+ @name + ']
BACKUP LOG [' + @name + '] TO DISK = ''' + @chemin_svg_bdd + '.trn''
-- Tente de convaincre le moteur d''utiliser
-- le début du journal de transactions
CHECKPOINT
-- Si la portition active n''est plus à la fin
-- du journal de transactions, vide cette partie
BACKUP LOG [' + @name + '] TO DISK = ''' + @chemin_svg_bdd + '.trn''
-- Le Shrink est maintenant possible
DBCC SHRINKFILE(2, 10, TRUNCATEONLY)
-- du journal de transactions, vide cette partie
BACKUP LOG [' + @name + '] TO DISK = ''' + @chemin_svg_bdd + '.trn''
-- Le Shrink est maintenant possible
DBCC SHRINKFILE(2, 10, TRUNCATEONLY)'
exec sp_executesql @req
delete @t_bdd where ligne = @k -- à la fin
end
GO