0

顧客から、すべてのテーブルの詳細を含む、データベース スペースの使用状況に関するレポートを作成するためのクエリを作成するように依頼されました。

他の人に役立つかもしれないと考えて、ここに私の解決策を投稿します。

コメントと可能な改善を投稿してください。たとえば、MySql データベースで同じ結果を得る方法を知りたいです。

4

1 に答える 1

1

このクエリは、Microsoft Sql Server 2000 以降で機能します。

SET NOCOUNT ON 

DBCC UPDATEUSAGE(0) 

-- DB size.
EXEC sp_spaceused

-- Table row counts and sizes.
CREATE TABLE #t 
( 
    [name] NVARCHAR(128),
    [rows] CHAR(11),
    reserved VARCHAR(18), 
    data VARCHAR(18), 
    index_size VARCHAR(18),
    unused VARCHAR(18)
) 

INSERT #t EXEC sp_msForEachTable 'EXEC sp_spaceused ''?''' 

SELECT *
FROM   #t

-- # of rows.
SELECT SUM(CAST([rows] AS int)) AS [rows]
FROM   #t

DROP TABLE #t
于 2013-07-19T14:51:59.323 に答える