2 sql-server-2008 stored-procedures size
使用 SQL Server 2008,我发现可以使用获取数据库大小
exec sp_spaceused
Run Code Online (Sandbox Code Playgroud)
此过程返回两个表:
database_name | database_size | unallocated space
reserved | data | index_size | unused
Run Code Online (Sandbox Code Playgroud)
我想创建一个查询,其中 SQL 调用的唯一输出是为 database_size 返回的值。我不想要任何多余的输出(没有表头、列名等)。
有没有一种简单的方法可以做到这一点?
在不创建数据库对象的情况下完成此操作的另一种方法是使用从 sp_spaceused 存储过程本身获取的以下查询:
declare @dbsize bigint
declare @logsize bigint
select @dbsize = sum(convert(bigint,case when status & 64 = 0 then size else 0 end))
, @logsize = sum(convert(bigint,case when status & 64 <> 0 then size else 0 end))
from dbo.sysfiles
select ltrim(str((convert (dec (15,2),@dbsize) + convert (dec (15,2),@logsize))
* 8192 / 1048576,15,2) + ' MB') as Database_Size
Run Code Online (Sandbox Code Playgroud)