我有一个非常大的产品数据库。我需要复制这个数据库来制作测试环境,但是磁盘空间不足。
但实际上不需要从包含用户数据的表中复制行,只需要那些描述功能的表。对于包含用户数据的表,我只需要复制表“描述”(列、索引、触发器...)。
如何(使用什么查询)在没有某些表数据的情况下估计数据库的大小?
最佳答案
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
*作者:Alexander Groß * Link to source
关于sql-server - 获取表列表的总大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20219862/