日期:2014-05-18  浏览次数:20409 次

sql2000获取磁盘剩余空间
1、在sql中执行Exec master.dbo.xp_fixeddrives 可以得到磁盘剩余空间。
drive MB 可用空间
C 22635
D 75430
E 130667

但是我想要得到的结果是GB格式。

一位大仙告知,在sql2005、2008中可以执行如下代码可以得到GB格式。
declare @t table (drive varchar(2),free decimal(18,4))
insert into @t
Exec master.dbo.xp_fixeddrives
select drive,free=free/1024 from @t

但是在sql2000中不行。因为SQL 2000不支持
 INSERT INTO @TempAssTb
EXEC SP_ExecuteSql @TempSql 
这种语法。

不知道其他大仙有什么其他办法,谢谢!






------解决方案--------------------
SQL code
--我本地没有2000的环境,你试试临时表行不行?
create table #t(drive varchar(2),free decimal(18,4))
insert into #t Exec master.dbo.xp_fixeddrives
select drive,free=free/1024 from #t
drop table #t

------解决方案--------------------
SQL code
[Quote=引用:]

SQL code
--我本地没有2000的环境,你试试临时表行不行?
create table #t(drive varchar(2),free decimal(18,4))
insert into #t Exec master.dbo.xp_fixeddrives
select drive,free=free/1024 from #t
drop table #t
[/Quote]
在虚拟机器里装了个sql2000 测试通过
结果如下

C    4.236328125
D    .207031250