以下两个问题都要求用Sql语句实现.
1、怎样获取数据库可用空间大小,请注意是可用空间,不是数据库文件的大小。
2、怎样把数据库表格中的内容导出到txt文件,如果有二进制字段的表格,怎样导出到dat文件或其他格式的文件?

解决方案 »

  1.   

    sp_spaceused
    显示行数、保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间。语法
    sp_spaceused [[@objname =] 'objname']
        [,[@updateusage =] 'updateusage']参数
    [@objname =] 'objname'是为其请求空间使用信息(保留和已分配的空间)的表名。objname 的数据类型是 nvarchar(776),默认设置为 NULL。[@updateusage =] 'updateusage'表示应在数据库内(未指定 objname 时)还是在特定的对象上(指定 objname 时)运行 DBCC UPDATEUSAGE。值可以是 true 或 false。updateusage 的数据类型是 varchar(5),默认设置为 FALSE。返回代码值
    0(成功)或 1(失败)
      

  2.   

    USE pubs
    exec sp_spaceused /*
    database_name      database_size      unallocated space  
    ------------------ ------------------ ------------------ 
    pubs               2.50 MB            0.61 MB 
    reserved           data               index_size         unused             
    ------------------ ------------------ ------------------ ------------------ 
    1168 KB            424 KB             616 KB             128 KB*/
      

  3.   

    --导出文件--try
    select UserID,ViewIP,max(时间) as 时间
    from opendatasource('microsoft.jet.oledb.4.0','Text;hdr=yes;database=d:\')...文件名#txt
    group by UserID,ViewIP--如果查询全部数据
    select UserID,ViewIP,*
    from opendatasource('microsoft.jet.oledb.4.0','Text;hdr=yes;database=d:\')...文件名#txt
    --导出数据到文本.select * 
      FROM   OPENROWSET('MICROSOFT.JET.OLEDB.4.0'   
      ,'Text;HDR=no;Delimited=";";DATABASE=C:\' --c:\是目录   
      ,cpbuyaa20070821#txt) 
      

  4.   

    在用导出文件的三个语句时,出现的同样错误:
    未能找到 OLE DB 提供程序 'microsoft.jet.oledb.4.0 ' 的注册表项。
    应该怎么解决啊?
      

  5.   

    --查询库信息
    exec sp_spaceused  
    --查询该库表信息
    exec sp_spaceused  表名
      

  6.   

    请问这两个功能有没有不用存储过程,只用Sql语句实现的??
      

  7.   

    那就要这样了--查询库信息
    exec sp_spaceused  
    --查询该库表信息
    exec sp_spaceused  表名
    --查所有数据库的信息
    select database_id,type,name,size from sys.master_files
    --查数据库名的信息
    select database_id,type,name,size from sys.master_files
    where name like '%'+'数据库名'+'%'
      

  8.   

    请教楼上,执行"select database_id,type,name,size from sys.master_files"后,
    出现错误提示"对象名 'sys.master_files' 无效。",请问怎样处理?
      

  9.   

    master_files是系统试图
    查询实例上master_files系统视图中相应数据库的文件情况。
    在该数据库里新建查询,调用语句
      

  10.   

    我要实现的功能是在程序中监控数据库文件大小不能超过2G,要保证数据库可用空间在一定范围内.另外考虑到可能会用到其他的数据库(如Oracol),最好是用Sql语句实现.搞的很头痛.
    楼上的可不可以提供个能在程序中执行的sql语句?
      

  11.   

    把语句写在procedure中就可以了
    前台调用procedure

    create procedure selectsysinfor
    as
    select database_id,type,name,size from sys.master_files--exec selectsysinfor