此查询出现错误
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 Enterprise版上运行它。我已经尝试在Standard和其他较低版本上运行它,并且可以正常工作。有人可以告诉我这段代码有什么问题,什么应该是正确的。我不拥有此代码,我只是从另一个站点复制了它。
已采取的措施:我已尝试将其转换为bigint数据类型,但仍然无济于事。
非常感谢您
答案 0 :(得分:0)
使用MF.size * 8
代替MF.size * 8.0