--> Title : SQL Server查詢可用磁碟空間
--> Author : wufeng4552
--> Date : 2009-10-30 09:59:09
前言
如果你的組織擁有的程式要求一個很大量的磁碟空間或者大比例的特定磁碟,那麼確保在程式開始或者關鍵點時確認磁碟機具有足夠的儲存。一次快速檢查就可以節約大量的時間,減少煩惱和重新工作
如果磁碟空間很緊張或者大比例的磁碟需要用來進行該進程,那麼在繼續進行一個進程之前檢查磁碟空間是一個明智之舉. 使用SQL Server 2000 到 2008都提供的xp_fixeddrives擴充預存程序解決這個問題.
if object_id('sp_exec_getDiskSpace','P')is not null
drop proc sp_exec_getDiskSpace
go
create proc sp_exec_getDiskSpace
(
@minMBfree int,
@Drive varchar(2)
)
as
begin
declare @MBfree int
select @MBfree=0
create table #tb_DiskSpace
([Drive] varchar(2),
[MBfree] int)
insert #tb_DiskSpace exec master.dbo.xp_fixeddrives
select @mbfree=[MBfree]
from #tb_DiskSpace
where [Drive]=@Drive
if @MBfree>@minMBfree
return
else
begin
raiserror ('*** ERROR *** - 磁盤空間不足!', 16, 1)
end
drop table #tb_DiskSpace
end
go
exec sp_exec_getDiskSpace 10240,'C'
/*
(5 個資料列受到影響)
訊息50000,層級16,狀態1,程式sp_exec_getDiskSpace,行21
*** ERROR *** - 磁盤空間不足!
*/
exec sp_exec_getDiskSpace 10240,'C'