數據庫的大小將通過
USE MyDatabase
EXEC sp_spaceused
顯示看的註釋sp_spaceused代碼(我碰巧要尋找一個SQL 2000服務器,但相同/相似的將是SQL2005/SQL2008真)
USE master
EXEC sp_helptext 'sp_spaceused'
和相關代碼:
declare @dbsize dec(15,0)
declare @logsize dec(15)
declare @bytesperpage dec(15,0)
declare @pagesperMB dec(15,0)
select @dbsize = sum(convert(dec(15),size))
from dbo.sysfiles
where (status & 64 = 0)
select @logsize = sum(convert(dec(15),size))
from dbo.sysfiles
where (status & 64 <> 0)
select @bytesperpage = low
from master.dbo.spt_values
where number = 1
and type = 'E'
select @pagesperMB = 1048576/@bytesperpage
select database_name = db_name(),
database_size =
ltrim(str((@dbsize + @logsize)/@pagesperMB,15,2) + ' MB')
所以從您可以在大小保存到一個變量,再比較你試圖設置大小:
DECLARE @database_size bigint
SELECT @database_size = (@dbsize + @logsize)/@pagesperMB
IF @database_size < 3600
BEGIN
PRINT 'Expanding MyDatabase ...'
ALTER DATABASE MyDatabase
MODIFY FILE (NAME = MyDatabase_data, SIZE = 3600MB)
PRINT 'Expanding MyDatabase DONE'
END
ELSE
BEGIN
PRINT 'No expansion of MyDatabase required'
END
恆中密度纖維板的增長將導致分裂和稅收的服務器 - IIRC整個數據庫是在成長過程中鎖定。 當你知道它會增長時設置一個大尺寸是一個很好的做法。 – Sam 2009-02-27 02:15:34