DB를 백업하고 트랜잭션 로그 줄이는 쿼리 생성 쿼리

모든 DB를 백업하고 트랜잭션 로그 줄이는 쿼리를 생성시킨다.
go
use master;
set nocount on;
begin try
 drop table #tmpSql;
end try
begin catch

end catch;
declare  @sql varchar(max) = '';
select Convert(nvarchar(1000), 'use [' + name +'];' + CHAR(13)+CHAR(10) 
  +'backup database [' + name +'] to disk=''C:\temp\' + name +'.bak'' with init;'+ CHAR(13)+CHAR(10) 
  +'backup log [' + name +'] to disk=''C:\temp\' + name +'_log.bak'' with init;'+ CHAR(13)+CHAR(10) 
  +'alter database [' + name +'] Modify File (NAME = [' + replace(name,'GM Quiz', 'finehome') +'_Log], SIZE = 30MB);'+ CHAR(13)+CHAR(10) 
  +'DBCC SHRINKFILE(''' + replace(name,'GM Quiz', 'finehome') +'_Log'', 11);'+ CHAR(13)+CHAR(10) 
  +'--alter database [' + name +'] set offline;'+ CHAR(13)+CHAR(10) 
  +'GO'+ CHAR(13)+CHAR(10)) "sqlString" 
  into #tmpSql
from master..sysdatabases 
where name NOT IN ('master', 'tempdb', 'model', 'msdb', 'pubs', 'Self_Guidance', 'Northwind');
update #tmpSql
set @sql += "sqlString";
print @sql;

댓글

이 블로그의 인기 게시물

Oracle NLS_DATE_FORMAT 변경

Stop console process using Ctrl+C.

Alternative to IValueConvert, QuickConverter