Immer auf der Suche.... Shrink Log File (2)
T-SQL SQL Server 2005
Nachdem ich hier mir merkte wie man das Log einer SQL DB im SQL Server verkleinert. Brauchte ich nun eine Lösung, um diese auf alle Datenbanken des Servers anzuwenden.
Kategorie Nachdem ich hier mir merkte wie man das Log einer SQL DB im SQL Server verkleinert. Brauchte ich nun eine Lösung, um diese auf alle Datenbanken des Servers anzuwenden.
SELECT* into #tmp FROM master..sysdatabases where dbid > 4
declare @dbname varchar(100)
declare @sql varchar(1000)
DECLARE #cursor CURSOR FOR
SELECTname from #tmp where dbid > 4
OPEN #cursor
FETCH NEXT FROM #cursor INTO @dbname
WHILE@@FETCH_STATUS = 0
BEGIN
print @dbname
select *into #tmplog fromsys.database_files where 1=0
exec('insert into #tmplog select * from '+ @dbname +'.sys.database_files')
declare #log cursorfor selectname from #tmplog where type_desc ='LOG'
declare @lname varchar(100)
set @sql =''
open #log
fetch next from #log into @lname
while @@fetch_status= 0
BEGIN
print @lname
set @sql =
'USE [' + @DBNAME + '] '+
'BACKUP LOG ' + @DBNAME + ' WITH TRUNCATE_ONLY ' +
'DBCC SHRINKFILE(' + @lname + ',2) '+
'USE [master]'
exec(@sql)
fetch next from #log into @lname
END
close #log
deallocate #log
drop table #tmplog
FETCH NEXT FROM #cursor INTO @dbname
END
CLOSE #cursor
DEALLOCATE #cursor
droptable #tmp
Gruß JJR