Saya perlu tahu berapa banyak ruang disk tabel menggunakan SQL Server

Saya pikir sebagian besar orang yang tahu bagaimana untuk melakukan hal ini melalui GUI (klik kanan tabel, sifat), tetapi melakukan hal ini dalam T-SQL benar-benar batu.

Larutan
MEMBUAT TABEL #tmpSizeChar (
table_name sysname ,
row_count int,
reserved_size varchar(50),
data_size varchar(50),
index_size varchar(50),
unused_size varchar(50)) 

MEMBUAT TABEL #tmpSizeInt ( table_name sysname , row_count int, reserved_size_KB int, data_size_KB int, index_size_KB int, unused_size_KB int)

SET NOCOUNT ON INSERT #tmpSizeChar EXEC sp_msforeachtable 'sp_spaceused ''?'''

MASUKKAN KE #tmpSizeInt ( table_name, row_count, reserved_size_KB, data_size_KB, index_size_KB, unused_size_KB ) PILIH [table_name], row_count, CAST(SUBSTRING(reserved_size, 0, PATINDEX('% %', reserved_size)) SEBAGAI int)reserved_size, CAST(SUBSTRING(data_size, 0, PATINDEX('% %', data_size)) SEBAGAI int)data_size, CAST(SUBSTRING(index_size, 0, PATINDEX('% %', index_size)) SEBAGAI int)index_size, CAST(SUBSTRING(unused_size, 0, PATINDEX('% %', unused_size)) SEBAGAI int)unused_size DARI #tmpSizeChar

/ DROP TABLE #tmpSizeChar DROP TABLE #tmpSizeInt /

PILIH * DARI #tmpSizeInt ORDER BY DESC reserved_size_KB

Komentar (1)

Check out ini, aku tahu itu bekerja pada tahun 2005 (Microsoft Documentation):

Berikut ini adalah pub DB


pilih *
dari pub.sys.database_files

Mengembalikan ukuran dan max_size.

Komentar (0)

sp_spaceused tableName

di mana namatabel adalah nama tabel yang ingin anda tahu....

Komentar (0)