将字节转换为整数

时间:2011-10-11 14:24:39

标签: sql sql-server-2005 tsql sql-server-2008

我想在表格上使用sp_spaceused程序。 此过程返回表的大小。 例如:

sp_spaceused

database_name          database_size    unallocated space

db_test 216001.00 MB    196366.74 MB

执行压缩后,我想调用该函数以找到压缩百分比。

我再次致电sp_spaceused.

如何在内部表示database_size以执行除法?

1 个答案:

答案 0 :(得分:0)

您实际上可以将存储过程的结果存储在表中。将它们放入表格后,您可以根据需要对其进行操作。要将存储过程结果存入表中,首先需要创建一个包含与存储过程的结果集匹配的列的表。然后对表执行insert语句,而不是查询或值列表,执行存储过程。请注意,这只会将存储过程的第一个结果集放入表中。例如,你可以这样做:

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

insert HoldSpaceUsed
exec sp_spacesused

执行上述语句后,HoldSpaceUsed表将包含存储过程结果。请记住,database_size字段的“MB”表示数据库大小以兆字节为单位,因此您需要修剪“MB”文本,以便只有数字,然后根据需要使用它。