Получение размера базы данных MS SQL в независимом от культуры формате - PullRequest
0 голосов
/ 26 апреля 2011

sp_helpdb возвращает строки типа «50000.255 МБ» в столбце db_size.

Эти строки зависят от культуры;Приведенная выше строка будет означать две разные вещи в США и Германии (в последней точка-символ используется в качестве разделителя групп, аналогично запятой в США).

Есть ли другой метод, который возвращает числовое значение, культурно-независимый?

Ответы [ 2 ]

1 голос
/ 26 апреля 2011
 Use YourDB;
 SELECT SUM(Size / 128.0) As FileSize from sys.database_files;

Возвращает размер в мегабайтах в числовом формате. С него вы сможете делать с ним все, что вам нравится.

Примечание: size возвращает количество страниц размером 8 КБ в данном файле базы данных.,

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

1 голос
/ 26 апреля 2011

Я не думаю, что это возможно. 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...