create procedure shrinkDatabase as declare @name nvarchar(2000) declare getDataBaseCursor cursor for select name from sysdatabases //取出所有庫名 open getDataBaseCursor fetch next from getDataBaseCursor into @name //將取出來的值放在一個變量中 while @@fetch_status=0 //根據值循環執行壓縮 begin exec ('alter database '+ @name+' set recovery simple') exec ('dbcc shrinkdatabase('+@name+')') exec ('alter database'+@name+' set recovery full') fetch next from getDataBaseCursor into @name end close getDataBaseCursor //關閉 deallocate getDataBaseCursor //釋放 sp_helpdb urltest //比對數據庫大小 exec shrinkDatabase //執行