在sql server数据库中查找可用空间的最佳方法?

我希望能够找出我的数据库文件中剩余多少空间,以便我可以知道何时增加空间,以便在应用程序运行困难时不会这样做.

我希望能够编写脚本,以便我可以定期在多个数据库中运行它.

我有SQL Server 2000和SQL Server 2005数据库,但我希望能够跨两者运行相同的脚本.

我可以使用Management Studio在2005数据库上手动执行此操作,但不能在2000数据库上执行此操作.

最佳答案
试试sp_spaceused:

Displays the number of rows, disk
space reserved, and disk space used by
a table, indexed view, or Service
Broker queue in the current database,
or displays the disk space reserved
and used by the whole database.

我相信这存在于SQL Server 2000中,但我无法证明这一点.它适用于2005年和2008年.

如果你想将它绑定到某些服务器端逻辑,你可以使用sp_helptext查看它.

编辑:扩展我的评论如下,并感谢http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=82359的原始撰稿人,这是一种按文件分解使用情况的方法:

select
      name
    , filename
    , convert(decimal(12,2),round(a.size/128.000,2)) as FileSizeMB
    , convert(decimal(12,2),round(fileproperty(a.name,'SpaceUsed')/128.000,2)) as SpaceUsedMB
    , convert(decimal(12,2),round((a.size-fileproperty(a.name,'SpaceUsed'))/128.000,2)) as FreeSpaceMB
from dbo.sysfiles a

转载注明原文:在sql server数据库中查找可用空间的最佳方法? - 代码日志