quinta-feira, 20 de agosto de 2009

Espaço em disco 1

Existem algumas formas de se saber o espaço em disco total ou livre do servidor. Esta é uma delas:

Ela executa a Stored Procedure xp_fixeddrives que retorna a lista de drivers do servidor e o espaço livre de cada um, insere estes dados em uma tabela temporaria, para depois cruzar com a informação da function fn_servershareddrives, que mostra se é um drive Shared.


CREATE TABLE #DriveSpace ( Drive char(1), MBFree int )

-- get availabe drives and free space on each of them
INSERT INTO #DriveSpace EXEC xp_fixeddrives

SELECT * INTO #DriveUnion FROM (
SELECT A.DriveName COLLATE Latin1_General_CI_AS [Drives Available],
#DriveSpace.MBFree, 'X'[Shared]
FROM ::fn_servershareddrives() A
LEFT JOIN #DriveSpace on A.DriveName COLLATE Latin1_General_CI_AS = #DriveSpace.drive
UNION
SELECT Drive COLLATE Latin1_General_CI_AS [Drives Available],
MBFree, '-'[Shared]
FROM #DriveSpace
WHERE Drive NOT IN (SELECT DriveName COLLATE Latin1_General_CI_AS
FROM ::fn_servershareddrives()) ) A

Select * from #DriveUnion


Drop Table #DriveUnion
Drop Table #DriveSpace

Nenhum comentário:

Postar um comentário