5

50 個のテーブルを含む Johnson という DB があります。この DB を使用するチームから、各テーブルのサイズの見積もりを提供できるかどうか尋ねられました。

SQL Server を使用して、DB 内のすべてのテーブルとそれぞれのサイズ (GB または MB) のリストを表示するにはどうすればよいですか?

4

3 に答える 3

6
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 

データベースコンテキストで実行すると、次のような結果が得られます.. Northwind Database ここに画像の説明を入力

于 2013-10-17T18:03:14.133 に答える
1

@M.アリ

(Azure から) リモート DB 上の SQL Server Management Studio からスクリプトを実行しようとしましたが、ストアド プロシージャが見つかりません。

Could not find stored procedure 'sp_MSforeachtable'.

Azure DB で実行する場合は、まず、sp_MSforeachtable ストアド プロシージャを作成する次のスクリプトを実行します。

https://gist.github.com/metskills/893599

于 2016-01-13T15:46:06.277 に答える