2009-07-14 3 views
0

나는 나는 또한 tryedSQLCMD.EXE는 못생긴 보고서를 생성합니다. 그것을 포맷하는 방법?

Changed database context to 'AxDWH_Central_Reporting'. 

database_name                             Pdatabase_size  Punallocated space 
--------------------------------------------------------------------------------------------------------------------------------P------------------P------------------ 
AxDWH_Central_Reporting                           P10485.69 MB  P7436.85 MB   
reserved   Pdata    Pindex_size  Punused    
------------------P------------------P------------------P------------------ 
3121176 KB  P3111728 KB  P7744 KB   P1704 KB   
---------------------------------------------------------------- 

아래 참조 ...

use [AxDWH_Central_Reporting] 
GO 
EXEC sp_spaceused @updateusage = N'TRUE' 
GO 

그것은 두 테이블을 표시하고 'P'불필요한 문자의 어떤 종류의 못생긴 보고서를 생성 같은 SQL 쿼리를 실행 배치했다 다음 질의

declare 
    @dbname sysname, 
    @dbsize bigint, 
    @logsize bigint, 
    @reservedpages bigint 

select 
    @reservedpages = sum(a.total_pages) 
from 
    sys.partitions p join sys.allocation_units a on p.partition_id = a.container_id left join sys.internal_tables it on p.object_id = it.object_id 

select 
    @dbsize = sum(convert(bigint,case when status & 64 = 0 then size else 0 end)), 
    @logsize = sum(convert(bigint,case when status & 64 <> 0 then size else 0 end)) 

from 
    dbo.sysfiles 

select 
    'database name' = db_name(), 
    'database size' = ltrim(str((convert (dec (15,2),@dbsize) + convert (dec (15,2),@logsize)) * 8192/1048576,15,2) + ' MB'), 
    'unallocated space' = ltrim(str((case when @dbsize >= @reservedpages then 
     (convert (dec (15,2),@dbsize) - convert (dec (15,2),@reservedpages)) * 8192/1048576 else 0 end),15,2) + ' MB') 

이 절차에서 한 테이블을 생성하지만 비슷한 추악한보고있어합니다 :

database name                             Pdatabase size  Punallocated space 
--------------------------------------------------------------------------------------------------------------------------------P------------------P------------------ 
master                               P5.75 MB   P1.52 MB   

(1 rows affected) 

보고서 레이아웃 형식을 변경할 수 있습니까? 더 아름답게 보이게하려면?

답변

0

나는 당신이 SQLCMD를 얻을 수 있고 sp_spaceused를 멋지게 형식화 할 수 있을지 의심 스럽다. 필요한 정보를 얻는 다른 방법을 사용하는 것이 어떨까?

SELECT 
    t.NAME AS TableName, 
    i.name as indexName, 
    p.[Rows], 
    sum(a.total_pages) as TotalPages, 
    sum(a.used_pages) as UsedPages, 
    sum(a.data_pages) as DataPages, 
    (sum(a.total_pages) * 8)/1024 as TotalSpaceMB, 
    (sum(a.used_pages) * 8)/1024 as UsedSpaceMB, 
    (sum(a.data_pages) * 8)/1024 as DataSpaceMB 
FROM 
    sys.tables t 
INNER JOIN  
    sys.indexes i ON t.OBJECT_ID = i.object_id 
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id 
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id 
WHERE 
    t.NAME NOT LIKE 'dt%' AND 
    i.OBJECT_ID > 255 AND 
    i.index_id <= 1 
GROUP BY 
    t.NAME, i.object_id, i.index_id, i.name, p.[Rows] 
ORDER BY 
    object_name(i.object_id) 

작품 나를 위해 잘 : SQL Server 2005 및 최대에서

는 테이블과 그들이 사용하는 크기를 표시하는 T-SQL의 조각을 사용! :-)

마크