Как я могу запросить мой sql-сервер, чтобы получить размер базы данных?
Я использовал это:
use "MY_DB"
exec sp_spaceused
Я получил это:
database_name database_size unallocated space
My_DB 17899.13 MB 5309.39 MB
Он возвращает мне несколько столбцов, которые мне не нужны, может быть, есть трюк, чтобы выбрать столбец database_size из этой хранимой процедуры?
Я также пробовал этот код:
SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name,
Physical_Name,
(size * 8) / 1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = 'MY_DB'
Это дает мне этот результат:
DatabaseName Logical_Name Physical_Name SizeMB
MY_DB MY_DB D:\MSSQL\Data\MY_DB.mdf 10613
MY_DB MY_DB_log D:\MSSQL\Data\MY_DB.ldf 7286
Итак, я написал это:
SELECT SUM(SizeMB)
FROM (
SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name,
Physical_Name,
(size * 8) / 1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = 'MY_DB'
) AS TEMP
Я получил: 1183
Итак, это работает, но, может быть, есть правильный способ получить это?