zoukankan      html  css  js  c++  java
  • exec sp_spaceused如何只返回一个结果集(转载)

    问:


    我想把每天数据库的大小自动保存到table中
    但是exec sp_spaceused是返回2个表,执行下面的语句出错,如何解决?

    drop table db_size
    go
    create table dbo.db_size (
    database_name varchar(200),
    database_size varchar(200),
    unallocated_space varchar(200)
    )
    go
    insert into db_size exec sp_spaceused

    exec sp_spaceused始终返回两个结果集,导致报错:

    ---------------------------------------------------------
    Server: Msg 213, Level 16, State 7, Procedure sp_spaceused, Line 196
    Insert Error: Column name or number of supplied values does not match table definition.

    答:


    这个东西你只要查看一下sp_spaceused中是如何写的,把它摘下来就行了
    sp_helptext 'sp_spaceused'可以看sp_spaceused的内容

    可以得知sp_spaceused中,最核心的一段代码如下:

    declare @pages int  
    declare @dbname sysname  
    declare @dbsize dec(15,0)  
    declare @logsize dec(15)  
    declare @bytesperpage dec(15,0)  
    declare @pagesperMB  dec(15,0)  
    
     select @dbsize = sum(convert(dec(15),size))  
      from dbo.sysfiles  
      where (status & 64 = 0)  
      
     select @logsize = sum(convert(dec(15),size))  
      from dbo.sysfiles  
      where (status & 64 <> 0)  
      
     select @bytesperpage = low  
      from master.dbo.spt_values  
      where number = 1  
       and type = 'E'  
     select @pagesperMB = 1048576 / @bytesperpage  
      
     select  database_name = db_name(),  
      database_size =  
       ltrim(str((@dbsize + @logsize) / @pagesperMB,15,2) + ' MB'),  
      'unallocated space' =  
       ltrim(str((@dbsize -  
        (select sum(convert(dec(15),reserved))  
         from sysindexes  
          where indid in (0, 1, 255)  
        )) / @pagesperMB,15,2)+ ' MB')  

    所以我们可以用sp_helptext这个系统存储过程,来查看任何存储过程的代码。

    原文链接

  • 相关阅读:
    typedef 函数指针的使用(含例子)
    关于计算机与MCU通信及MAX232、CH340T与PL2303的区别
    CH340电路设计
    USB转串口CH340接线方法
    开漏输出、推挽输出的区别
    STM32位带操作
    STM32启动文件:startup_stm32f10x_hd.s等启动文件的简单描述
    浮点数在内存中的存储方式
    stm32启动地址
    STM32三种启动模式 boot0 boot1
  • 原文地址:https://www.cnblogs.com/OpenCoder/p/10400505.html
Copyright © 2011-2022 走看看