Site menu:

Links:

RSS .NET RSS

RSS Engadget

Site search

Categories

March 2010
M T W T F S S
« Jan    
1234567
891011121314
15161718192021
22232425262728
293031  

Tags

Blogroll

Shrink all databases and Set it to Simple in SQL Server

Normally, I need to run this script against dev sql server in order for me to free up some space

CREATE TABLE #temp_dbs_table
(
[db_name] sysname NOT NULL PRIMARY KEY,
[mod] tinyint NOT NULL DEFAULT 1
)
 
INSERT INTO #temp_dbs_table ([db_name])
SELECT
name
FROM
master..sysdatabases
WHERE
dbid > 4 --- skip master, tempdb, model and msdb databases
 
declare @db_name sysname
 
SET @db_name = ''
 
while @db_name IS NOT NULL
begin
SET @db_name = NULL
 
SELECT top 1 @db_name = [db_name] FROM #temp_dbs_table where [mod] = 1
 
IF @db_name IS NULL
break
 
print '--------------------------------------------------'
 
print '> Database: ' + @db_name
 
print '> Changing recovery mode to simple'
 
declare @n_cmd nvarchar(4000)
 
SET @n_cmd = 'alter database [' + @db_name + '] set recovery simple'
 
exec sp_executesql @n_cmd
 
print '> Shrinking database'
 
SET @n_cmd = 'dbcc shrinkdatabase([' + @db_name + '])'
 
exec sp_executesql @n_cmd
 
UPDATE #temp_dbs_table set [mod] = 0 where [db_name] = @db_name
end
 
DROP TABLE #temp_dbs_table

I got this script from here

Write a comment