Created
December 30, 2009 16:28
-
-
Save actaneon/266160 to your computer and use it in GitHub Desktop.
Shrinks curent DB and Transaction log
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
declare @tablename varchar(255) | |
declare @logfilename nvarchar(200) | |
declare @datafilename nvarchar(200) | |
declare @dbname nvarchar(200) | |
declare @sql nvarchar(1000) | |
set @dbname = ltrim(rtrim(db_name())) | |
set @logfilename = ltrim(rtrim((select name from sysfiles where lower(filename) like '%.ldf%'))) | |
set @datafilename = ltrim(rtrim((select name from sysfiles where lower(filename) like '%.mdf%'))) | |
/* Reindex Tables */ | |
declare tablecursor cursor for | |
select '[' + table_schema + '].[' + table_name + ']' from information_schema.tables | |
where table_type = 'base table' | |
open tablecursor | |
fetch next from tablecursor into @tablename | |
while @@fetch_status = 0 | |
begin | |
print 'Reindexing ' + @tablename | |
dbcc dbreindex(@tablename,' ',90) | |
fetch next from tablecursor into @tablename | |
end | |
close tablecursor | |
deallocate tablecursor | |
/*Shrink the crap out of the DB*/ | |
set @sql = 'BACKUP LOG [' + @dbname + '] WITH TRUNCATE_ONLY' | |
print @sql | |
exec sp_executesql @sql | |
set @sql = 'DBCC SHRINKFILE([' + @logfilename + '], 1)' | |
print @sql | |
exec sp_executesql @sql | |
set @sql = 'DBCC SHRINKFILE([' + @datafilename + '], 1)' | |
print @sql | |
exec sp_executesql @sql | |
set @sql = 'DBCC SHRINKDATABASE([' + @dbname + '], 1)' | |
print @sql | |
exec sp_executesql @sql |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment