2011-05-10 23 views
15

我嘗試以下SQL-Server上:如何捕捉一個DBCC,語句的輸出中不是Temptable

create table #TmpLOGSPACE(
    DatabaseName varchar(100) 
    , LOGSIZE_MB decimal(18, 9) 
    , LOGSPACE_USED decimal(18, 9) 
    , LOGSTATUS decimal(18, 9)) 

insert #TmpLOGSPACE(DatabaseName, LOGSIZE_MB, LOGSPACE_USED, LOGSTATUS) 
DBCC SQLPERF(LOGSPACE); 

...但這個上升的語法錯誤......

任何建議嗎?

回答

18

把語句裏面EXEC('')

insert #TmpLOGSPACE(DatabaseName, LOGSIZE_MB, LOGSPACE_USED, LOGSTATUS) 
EXEC('DBCC SQLPERF(LOGSPACE);') 
1

這個運行沒有直接回答這個問題,但它確實回答這個問題的意圖:想必,你想有一個簡單的方法來找到電流的大小日誌文件:

SELECT size*8192.0/1024.0/1024.0 as SizeMegabytes 
FROM sys.database_files 
WHERE type_desc = 'LOG' 
-- If the log file size is 100 megabytes, returns "100". 

我們之所以用8192乘以的是,在SQL服務器的頁面大小爲8192個字節。

我們將1024除以1024再除以1024的原因是將大小從字節轉換爲兆字節。