Преобразование байтов в целые числа - PullRequest
2 голосов
/ 11 октября 2011

Я хочу использовать процедуру sp_spaceused на столе.Эта процедура возвращает среди прочего размер таблиц.Например:

sp_spaceused

database_name          database_size    unallocated space

db_test 216001.00 MB    196366.74 MB

После выполнения сжатия я хочу вызвать функцию, чтобы найти процент сжатия.

Я снова вызываю sp_spaceused.

Как можноЯ внутренне представляю размер_базы данных для выполнения деления?

1 Ответ

0 голосов
/ 13 октября 2011

Вы можете фактически сохранить результаты хранимой процедуры в таблице. Как только они у вас есть в таблице, вы можете манипулировать ими так, как вам нужно. Чтобы получить результаты хранимой процедуры в таблицу, сначала нужно создать таблицу со столбцами, которые соответствуют результирующему набору хранимой процедуры. Затем выполните оператор вставки для таблицы, но вместо запроса или списка значений выполните хранимую процедуру. Обратите внимание, что это приведет к получению в таблицу только первого набора результатов хранимой процедуры. Например, вы можете сделать:

create table HoldSpaceUsed
(
    database_name sysname,
    database_size varchar(100),
    [unallocated space] varchar(100)
)

insert HoldSpaceUsed
exec sp_spacesused

После выполнения вышеприведенных операторов таблица HoldSpaceUsed будет содержать результаты хранимой процедуры. Помните, что поле database_size имеет «МБ», представляющее размер базы данных в мегабайтах, поэтому вам нужно будет обрезать текст «МБ», чтобы у вас был только номер, а затем вы можете использовать его так, как вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...