壓縮SQL SERVER日誌程式碼

iSQlServer發表於2009-02-04
DECLARE @name VARCHAR(25)  
DECLARE @SQL VARCHAR(1000)  
DECLARE @logid INT  
  
DECLARE sysdatabase_name CURSOR FOR SELECT  name FROM master.dbo.sysdatabases  
  
OPEN sysdatabase_name  
  
  
FETCH NEXT FROM sysdatabase_name   INTO   @name  
  
WHILE @@FETCH_STATUS = 0  
BEGIN  
  
   IF ( @name NOT IN ('xxx')) --不需要進行日誌收縮的資料庫名  
   BEGIN  
     SET @SQL =' DECLARE @logid INT  
                 USE   ' + @name+'  
                 SELECT @logid = fileid FROM sysfiles WHERE RIGHT(rtrim(filename),3) = ''ldf''  
  
                 BACKUP LOG ' + @name+' WITH NO_LOG  
                 DBCC SHRINKFILE (@logid) '  
  
     EXEC(@SQL)  
  
   END  
  
   FETCH NEXT FROM sysdatabase_name   INTO   @name  
  
END  
  
CLOSE sysdatabase_name  
DEALLOCATE sysdatabase_name 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-545240/,如需轉載,請註明出處,否則將追究法律責任。

相關文章