• Thanks a bunch guys! Really appreciate this although I have created a workaround... I used FSUTIL command line and did some tweaking to get the result I need and I also compared it with the result from xp_fixedrives..

    Below is the code.. I have one problem though... When I tried converting

    the Bytes to Mbytes at the last SELECT statement, I got this error.

    "Server: Msg 8114, Level 16, State 5, Line 42

    [Microsoft][ODBC SQL Server Driver][SQL Server]Error converting data type varchar to bigint."

    Help please! :):):)

    ------------------------------------------------------------------

    SET NOCOUNT ON

    DECLARE @varSQL varchar(1000), @varDrive varchar(10)

    CREATE TABLE #tmpDriveSpaceInfo

    (drive varchar(10),

    xpFixedDrive_FreeSpace_MB bigint,

    FSutil_FreeSpace_Bytes integer,

    FSutil_Space_Bytes integer,

    FSutil_AvailSpace_Bytes integer

    )

    CREATE TABLE #tmpFSutilDriveSpaceInfo

    (drive varchar(10),

    info varchar(50)

    )

    INSERT INTO #tmpDriveSpaceInfo (drive, xpFixedDrive_FreeSpace_MB)

    EXEC master..xp_fixeddrives

    DECLARE CUR_DriveLooper CURSOR FOR SELECT drive FROM #tmpDriveSpaceInfo

    OPEN CUR_DriveLooper

    FETCH NEXT FROM CUR_DriveLooper INTO @varDrive

    WHILE @@FETCH_STATUS = 0

    BEGIN

    SET @varSQL = 'EXEC master..XP_CMDSHELL ' + ''''+ 'fsutil volume diskfree ' + @varDrive + ':' + ''''

    INSERT INTO #tmpFSutilDriveSpaceInfo (info)

    EXEC(@varSQL)

    UPDATE #tmpFSutilDriveSpaceInfo SET drive = @varDrive WHERE drive IS NULL

    FETCH NEXT FROM CUR_DriveLooper INTO @varDrive

    END

    DELETE FROM #tmpFSutilDriveSpaceInfo WHERE info IS NULL

    SELECT drive,

    ltrim(rtrim(left(info,29))) as InfoType,

    ltrim(rtrim(substring (info, charindex (':',info) + 2, 20))) as Size_Bytes

    INTO #tmpFSutilDriveSpaceInfo_Fixed

    FROM #tmpFSutilDriveSpaceInfo

    SELECT a.drive,

    a.xpFixedDrive_FreeSpace_MB,

    (SELECT cast(Size_Bytes as bigint) FROM #tmpFSutilDriveSpaceInfo_Fixed WHERE drive = a.drive and InfoType = 'Total # of free bytes')/1048576 AS FSutil_FreeSpace_MB,

    (SELECT cast(Size_Bytes as bigint) FROM #tmpFSutilDriveSpaceInfo_Fixed WHERE drive = a.drive and InfoType = 'Total # of bytes')/1048576 AS FSutil_TotalSpace_MB,

    (SELECT cast(Size_Bytes as bigint) FROM #tmpFSutilDriveSpaceInfo_Fixed WHERE drive = a.drive and InfoType = 'Total # of avail free bytes')/1048576 AS FSutil_AvailableSpace_MB

    FROM #tmpDriveSpaceInfo a

    CLOSE CUR_DriveLooper

    DEALLOCATE CUR_DriveLooper

    DROP TABLE #tmpFSutilDriveSpaceInfo

    DROP TABLE #tmpDriveSpaceInfo

    DROP TABLE #tmpFSutilDriveSpaceInfo_Fixed

    ------------------------------------------------------------------