Я хочу знать, какие таблицы в моей базе данных SQL Server довольно большие. Я нашел функцию SQL, которая вычисляет размер оценки таблицы (link), но она не поддерживает ее перечисление для всех доступных таблиц. Есть ли способ сделать это? Мне удалось написать функцию в TSQL-скрипте, она отвечает на мой вопрос, однако это не самый красивый способ ее решения.Оценить размер всех таблиц в базе данных SQL Server
DECLARE @table_name varchar(100)
DECLARE @tables TABLE (table_name VARCHAR(255), column_list VARCHAR(255));
SELECT * INTO #tmp_tables FROM (
SELECT o.name AS table_name,
STUFF(
(
SELECT ', ' + c.name
FROM sys.columns AS c
WHERE c.object_id = o.object_id
ORDER BY c.column_id
FOR XML PATH('')
), 1, 2, '') AS column_list
FROM sys.objects AS o
WHERE type = 'U') table_names
WHILE (SELECT COUNT(*) FROM #tmp_tables) > 0
BEGIN
SELECT TOP 1 @table_name = table_name FROM #tmp_tables;
print @table_name;
EXEC Sp_spaceused @table_name;
DELETE #tmp_tables where table_name = @table_name;
END
DROP TABLE #tmp_tables;
http://stackoverflow.com/questions/7892334/get-size-of-all-tables-in-database – CodingDefined