sqlserver收缩数据库日志脚本

因为需要迁移数据库,但是发现日志文件非常大,所以需要收缩数据库后再迁移,但是一个服务器有几个数据库,每个都点一次感觉太累了。在没有sqlserver编程基础的情况下,在百度搜了一下相关资料,写出了这个脚本,用起来感觉还好。所以在这里分享

use master
go 
declare mydbs cursor scroll
for Select Name FROM Master..SysDatabases
open mydbs
Declare @dbname nvarchar(255)
fetch next from mydbs into @dbname

while(@@FETCH_STATUS=0)
begin
	if @dbname!='master' and @dbname !='model' and @dbname!='msdb' and @dbname!='tempdb'
	begin

	declare @sqlquery nvarchar(1024)
		set @sqlquery='USE master
--GO
ALTER DATABASE '+@dbname+' SET RECOVERY SIMPLE WITH NO_WAIT
--GO
ALTER DATABASE '+@dbname+' SET RECOVERY SIMPLE   
--GO
USE '+@dbname+'
--GO
DBCC SHRINKFILE (N'''+@dbname+'_Log'', 100, TRUNCATEONLY)
--GO
USE master
--GO
ALTER DATABASE '+@dbname+' SET RECOVERY FULL WITH no_wait
--GO
ALTER DATABASE '+@dbname+' SET RECOVERY FULL   
--GO'
		EXEC SP_EXECUTESQL @sqlquery
		--print @sqlquery

	end
	fetch next from mydbs into @dbname
end
close mydbs
deallocate mydbs
go