zoukankan      html  css  js  c++  java
  • 输出一个数据库中所有表的数据量

    此TSQL语句是针对SQL Server 2012编写。如果使用之前版本,需要对部分语句进行重写。

     1 USE [数据库名称];
     2 
     3 --1.建立临时表,来存放结果。
     4 /*
     5 临时表数据结构:
     6 struct Table_TableCount
     7 {
     8     string TableName;//表名字
     9     Int64 Count;//表数据量
    10 }
    11 */
    12 --1.1 如果临时表存在,则删除
    13 If Exists ( Select * From Tempdb..SysObjects Where ID = Object_id( 'TempDB..#Table_TableCount') )
    14     Begin
    15         Drop Table #Table_TableCount;
    16     End;
    17 
    18 --1.2 建立临时表
    19 create table #Table_TableCount
    20 (
    21     [TableName] [Nvarchar](max) NOT NULL,
    22     [Count] [Bigint] NOT NULL
    23 );
    24 
    25 --2.用游标Cursor_Table,遍历所有表
    26 DECLARE Cursor_Table CURSOR FOR
    27     SELECT name from sysobjects WHERE xtype = 'u' AND name <> 'dtproperties';
    28 OPEN Cursor_Table;
    29 DECLARE @tableName NVARCHAR(MAX);
    30 FETCH NEXT from Cursor_Table INTO @tableName;
    31 WHILE @@fetch_status = 0
    32 BEGIN
    33     --3.获取游标所指向的当前表的名称,以及数据量,将这两个信息插入临时表
    34     DECLARE @tempSQLText NVARCHAR(MAX) = 'DECLARE @CurrentTableCount Bigint = ( SELECT COUNT(*) From [' + @tableName + '] ); INSERT INTO #Table_TableCount ([TableName],[Count]) VALUES (''' + @tableName + ''', @CurrentTableCount );';
    35     EXEC( @tempSQLText );
    36     FETCH NEXT from Cursor_Table INTO @tableName;
    37 END
    38 CLOSE Cursor_Table;
    39 DEALLOCATE Cursor_Table;
    40 
    41 --4.输出(通过构造不同的SELECT语句,来获取不同的输出方式)
    42 SELECT * FROM #Table_TableCount WHERE [COUNT] > 0 ORDER BY [Count] DESC; --当前是输出数据量大于0,并且按数据量的降序排序
  • 相关阅读:
    【Vue】源码——编译过程
    FreeRADIUS 、DaloRADIUS 搭建记录
    docker 学习笔记
    wget 技巧
    Centos 部署Cobbler系统
    Cloudstack 安装记录
    利用Google GCM发送push通知到Android客户端
    利用ApnsPHP包向IOS推送消息
    Linux下SCP的使用
    Android Google购买PHP服务器端验证(订阅购买和一次性购买)
  • 原文地址:https://www.cnblogs.com/xxxteam/p/2955300.html
Copyright © 2011-2022 走看看