sql server 2005 壓縮例項下所有資料庫檔案及日誌檔案 語句【轉】
--01.get all database name
SELECT DBNAME = DB_NAME(s_mf.database_id) INTO #DN
FROM
sys.master_files s_mf
WHERE
s_mf.state = 0 and -- ONLINE
HAS_DBACCESS(DB_NAME(s_mf.database_id)) = 1 -- Only look at databases to which we have access
GROUP BY s_mf.database_id
ORDER BY 1
--02.use cursor to fetch db name
-----02.01 declare cursor
DECLARE cur CURSOR FOR
SELECT DBNAME FROM #DN
-----02.02 open cursor & declare var
OPEN cur
DECLARE @DbName VARCHAR(200)
set @DbName = 'F_Plan'
-----02.03 loop db bane
FETCH NEXT FROM cur into @DbName
WHILE(@@FETCH_STATUS=0)
BEGIN
print 'shrinking ' + @DbName + ' '
-------02.04 only shink log file
exec(
'
declare @dn varchar(200);
declare @ln varchar(210);
select @dn = name from '+@DbName+'.dbo.sysfiles where fileid=1
select @ln = name from '+@DbName+'.dbo.sysfiles where fileid=2
use ['+ @DbName + '] backup log ['+ @DbName +'] with no_log dbcc shrinkfile (@ln)
'
)
-------02.04 shink db file & log file
-- dbcc SHRINKDATABASE (@DbName)
print @DbName + ' done'
FETCH NEXT FROM cur INTO @DbName
END
-----02.05 colse cursor
CLOSE cur
DEALLOCATE cur
-----03.drop temp table
DROP TABLE #DN
SELECT DBNAME = DB_NAME(s_mf.database_id) INTO #DN
FROM
sys.master_files s_mf
WHERE
s_mf.state = 0 and -- ONLINE
HAS_DBACCESS(DB_NAME(s_mf.database_id)) = 1 -- Only look at databases to which we have access
GROUP BY s_mf.database_id
ORDER BY 1
--02.use cursor to fetch db name
-----02.01 declare cursor
DECLARE cur CURSOR FOR
SELECT DBNAME FROM #DN
-----02.02 open cursor & declare var
OPEN cur
DECLARE @DbName VARCHAR(200)
set @DbName = 'F_Plan'
-----02.03 loop db bane
FETCH NEXT FROM cur into @DbName
WHILE(@@FETCH_STATUS=0)
BEGIN
print 'shrinking ' + @DbName + ' '
-------02.04 only shink log file
exec(
'
declare @dn varchar(200);
declare @ln varchar(210);
select @dn = name from '+@DbName+'.dbo.sysfiles where fileid=1
select @ln = name from '+@DbName+'.dbo.sysfiles where fileid=2
use ['+ @DbName + '] backup log ['+ @DbName +'] with no_log dbcc shrinkfile (@ln)
'
)
-------02.04 shink db file & log file
-- dbcc SHRINKDATABASE (@DbName)
print @DbName + ' done'
FETCH NEXT FROM cur INTO @DbName
END
-----02.05 colse cursor
CLOSE cur
DEALLOCATE cur
-----03.drop temp table
DROP TABLE #DN
相關文章
- SQL語句收縮日誌檔案SQL
- SQL Server 2005無日誌檔案附加資料庫SQLServer資料庫
- SQL Server資料庫檔案與Windows系統透明檔案壓縮SQLServer資料庫Windows
- SQL Server 無日誌檔案附加資料庫SQLServer資料庫
- Sql Server 2005 日誌壓縮SQLServer
- 關於SQL Server 2000的日誌檔案壓縮SQLServer
- SQL Server 2005 日誌刪除和日誌檔案限制SQLServer
- 建立資料庫檔案-日誌檔案-次要資料庫檔案資料庫
- Oracle資料檔案收縮例項Oracle
- SQL Server日誌檔案總結及日誌滿的處理SQLServer
- SQL Server 2005日誌檔案損壞的處理方法SQLServer
- oracle資料庫移動資料檔案、日誌檔案和控制檔案Oracle資料庫
- 分析Oracle資料庫日誌檔案(1)(轉)Oracle資料庫
- 分析Oracle資料庫日誌檔案(1) [轉]Oracle資料庫
- 減小SQL SERVER的日誌檔案SQLServer
- [zt] SQL Server日誌檔案總結及日誌滿的處理SQLServer
- 在SQL Server中完美壓縮.mdf檔案DVSQLServer
- 日誌檔案太大,壓縮後,限制檔案的大小,但出現日誌檔案已經滿的告警
- 工作經驗: linux 壓縮當前資料夾下所有檔案Linux
- SQL SERVER 2005 日誌收縮SQLServer
- 【SQL Server】--SQL Server資料庫bak檔案還原SQLServer資料庫
- sql server日誌檔案總結及日誌滿的處理辦法SQLServer
- 壓縮SQL SERVER日誌程式碼SQLServer
- 丟失已歸檔日誌檔案下恢復資料庫資料庫
- window下刪除過舊的日誌檔案指令碼(如jboss的日誌檔案 資料庫的trace檔案)指令碼資料庫
- Oracle恢復例項之一:資料檔案、控制檔案、聯機日誌丟失Oracle
- 資料庫引數檔案控制檔案日誌檔案資料檔案跟蹤檔案等8大檔案的字典資料庫
- MySQL資料庫中的日誌檔案---(4)配置日誌檔案輸出路徑MySql資料庫
- SQL Server 2005中的檔案和檔案組SQLServer
- Linux下的壓縮檔案剖析(轉)Linux
- 分析Oracle資料庫日誌檔案(1)Oracle資料庫
- 分析Oracle資料庫日誌檔案(2)Oracle資料庫
- 分析Oracle資料庫日誌檔案(3)Oracle資料庫
- 檔案壓縮和解壓縮
- 更改RAC資料庫日誌檔案大小及數量 for ASM資料庫ASM
- SQL Server 中資料庫檔案的存放方式,檔案和檔案組SQLServer資料庫
- oracle中移動控制檔案、資料檔案、日誌檔案Oracle
- 【dbfsize】使用dbfsize命令得到資料檔案、控制檔案及日誌檔案的Block SizeBloC