以独立于文化的格式检索MS SQL数据库大小

时间:2011-04-26 08:39:19

标签: sql database size

sp_helpdb在db_size列中返回类似'50000.255 MB'的字符串。

这些字符串依赖于文化;上面的字符串在美国和德国意味着两种不同的东西(在后者中,点字符用作组分隔符,类似于美国的逗号)。

是否有另一种方法可以返回一个与文化无关的数值?

2 个答案:

答案 0 :(得分:1)

我认为不可能。 SP sp_helpdb使用str将数字大小转换为varchar,文档(我可以找到)中没有任何内容可以使str使用,而不是.作为十进制符号。使用set language无济于事。

马丁在评论

中建议的解决方法
select replace(str(sum(convert(dec(17,2),size)) / 128,10,2) +' MB', '.', ',') 
from sys.database_files

答案 1 :(得分:1)

 Use YourDB;
 SELECT SUM(Size / 128.0) As FileSize from sys.database_files;

这将以MB为单位返回MB大小,你可以从那里用它做你喜欢的事。

注意:size返回给定数据库文件中8KB页面的数量。

http://msdn.microsoft.com/en-us/library/ms174397.aspx