【发布时间】:2018-02-01 14:40:50
【问题描述】:
当我尝试加入 3 个系统表时,出现错误:
将数字转换为数据类型数字的算术溢出错误
但如果我只尝试加入其中的 2 个,则效果很好。
为什么?
代码1:(不起作用)
SELECT
database_id = (D.database_id),
last_user_lookup = MAX(U.last_user_seek),
last_user_update = MAX(U.last_user_seek),
total_size_mb = CAST(SUM(size) * 8. / 1024 AS DECIMAL(8,2)),
create_date = MAX(D.create_date)
FROM
sys.databases D
JOIN
sys.dm_db_index_usage_stats U ON (D.database_id = U.database_id)
JOIN
sys.master_files F ON (D.database_id = F.database_id)
GROUP BY
D.database_id;
代码2:(确实有效)
SELECT
database_id = (D.database_id),
-- last_user_lookup = MAX(U.last_user_seek),
-- last_user_update = MAX(U.last_user_seek),
total_size_mb = CAST(SUM(size) * 8. / 1024 AS DECIMAL(8,2)),
create_date = MAX(D.create_date)
FROM
sys.databases D
-- JOIN
-- sys.dm_db_index_usage_stats U ON (D.database_id = U.database_id)
JOIN
sys.master_files F ON (D.database_id = F.database_id)
GROUP BY
D.database_id;
代码 3:(也可以)
SELECT
database_id = (D.database_id),
last_user_lookup = MAX(U.last_user_seek),
last_user_update = MAX(U.last_user_seek),
-- total_size_mb = CAST(SUM(size) * 8. / 1024 AS DECIMAL(8,2)),
create_date = MAX(D.create_date)
FROM
sys.databases D
JOIN
sys.dm_db_index_usage_stats U ON (D.database_id = U.database_id)
-- JOIN
-- sys.master_files F ON (D.database_id = F.database_id)
GROUP BY D.database_id;
【问题讨论】:
-
先回答,然后搜索SO给你。您可能想重新访问 how to ask 。第一行是这样的:搜索和研究 ...并跟踪您找到的内容。即使您在网站的其他地方没有找到有用的答案,包括指向没有帮助的相关问题的链接也可以帮助其他人了解您的问题与其他问题有何不同 - 问题是您的确切错误消息.
标签: sql-server sql-server-2005