如何在 SQL Server 企业版中获取数据库大小
Posted
技术标签:
【中文标题】如何在 SQL Server 企业版中获取数据库大小【英文标题】:How to get database size in SQL Server Enterprise edition 【发布时间】:2019-09-09 01:55:11 【问题描述】:我收到关于此查询的错误
SELECT
DB.name,
SUM(CASE WHEN type = 0 THEN MF.size * 8 / 1024.0 ELSE 0 END) AS DataFileSizeMB,
SUM(CASE WHEN type = 1 THEN MF.size * 8 / 1024.0 ELSE 0 END) AS LogFileSizeMB,
SUM(mf.size* 8 / 1024.0) AS TotalSizeMB,
SYSDATETIME() AS Datelogged
FROM
sys.master_files MF
JOIN
sys.databases DB ON DB.database_id = MF.database_id
WHERE
DB.source_database_id IS NULL
GROUP BY
DB.name
ORDER BY
Datelogged DESC
我收到一个错误:
将表达式转换为数据类型int的算术溢出错误
我在 SQL Server 2016 企业版上运行它。我试过在标准版和其他低版本上运行它,它会工作的。有人可以告诉这段代码有什么问题,什么应该是正确的。我不拥有此代码,我只是从另一个站点复制它。
采取的措施:我尝试将其转换为 bigint 数据类型,但仍然无济于事。
非常感谢
【问题讨论】:
那么正确的语法应该是什么。谢谢 我认为您需要将数值转换为十进制,请参阅this question 【参考方案1】:用MF.size * 8.0
代替MF.size * 8
【讨论】:
以上是关于如何在 SQL Server 企业版中获取数据库大小的主要内容,如果未能解决你的问题,请参考以下文章