我想要一个存储过程,我可以执行这个存储过程,该数据库可以占用最大可能空间的百分比。例如,SQL Server 2005/2008
具有4GB的数据库限制,而2008R2具有10GB的限制(快速版)。数据库使用率最大%
我知道我可以EXEC sp-spaceused
获取当前的数据库大小和未分配的空间,但未分配的空间似乎有一些任意的块大小,并且随着数据库的增长将分配一个新的块。
是否有一个程序可以调用以获取数据库的最大大小限制?理想情况下,我想要的是当前分配数量与最大数量的百分比,所以如果数据库当前处于2GB,而我处于SQL 2008 R2(最大10GB),则过程将返回20.0或0.2,以指示20%。由于数据库可以安装在任何数量的不同SQL Server上,因此我不想假设SQL Server版本,并希望在运行时获得最大值。
但是这只适用于Express Edition。有多少个快递版本有不同的最大值?您的SP可以检查版本号,并返回正确的值。 – 2013-04-26 12:16:00
你是说只有Express版本具有最大数据库大小?并且完整版本不受限制? – 2013-04-26 12:18:10
实际用途是的。 SQLServer 2008的最大数据库大小超过500 TB。 – 2013-04-26 12:24:43