如何捕捉一个DBCC,语句的输出中不是Temptable

问题描述:

我尝试以下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); 

...但这个上升的语法错误......

任何建议吗?

把语句里面EXEC('')

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

这个运行没有直接回答这个问题,但它确实回答这个问题的意图:想必,你想有一个简单的方法来找到电流的大小日志文件:

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的原因是将大小从字节转换为兆字节。