zoukankan      html  css  js  c++  java
  • 如何遍历某数据库中的每一个表的总记录数

     1 上网搜集了很多资料,终于写出可以执行的一个存储过程了,如下:
     2  
     3 SET ANSI_NULLS ON
     4 GO
     5 SET QUOTED_IDENTIFIER ON
     6 GO
     7  
     8 --重点开始了
     9 CREATE PROCEDURE [dbo].[hrmis_counts]
    10  
    11 AS
    12 BEGIN
    13     --声明游标
    14     Declare MyCursor Cursor
    15         For Select name From hrmis..sysobjects where xtype='u'
    16         --"hrmis"是我需要查询的数据库名称
    17         --"xtype='u'"的意思是:只查询用户表,系统表不要,但可能会出错,网上有资料防止这种意外,至少我没有报错,就不理了。
    18     
    19     --打开游标
    20     Open MyCursor
    21             --定义变量
    22             Declare @tableName nvarchar(max),@sql nvarchar(max),@counts int
    23                 Fetch Next From MyCursor Into @tableName
    24                 While @@Fetch_status = 0
    25                 --@@Fetch_status = 0是指:游标未到末尾
    26                     Begin
    27                         Set @sql = 'Select @counts=count(*) From '+ @tableName
    28                         --print @sql
    29                         --Exec(@sql)
    30                         --上面这句会报错的“@counts未定义之类的,我忘了,有兴趣自己试试”,反正不能直接执行就是了。
    31                         --正确的写法是下面这句
    32                         Exec sp_executesql @sql,N'@counts Int out',@counts out
    33                         --好吧,我承认我也不太了解这条语句的含意,但这是不重点,重点是,它执行成功了。
    34                         If @counts > 10000
    35                         --只显示记录数大于1W的表名(这里随意就好了,不要也行)
    36                         print (Convert(nvarchar(max),@counts) +'......'+ @tableName)
    37                         Fetch Next From MyCursor Into @tableName
    38                     End
    39      --关闭游标
    40     Close MyCursor
    41     Deallocate MyCursor
    42 End
    43 GO

    保存一下,然后执行此存储过程,就可以自动遍历数据库中的所有表(647个表哇,蛋疼),然后把记录数大于1W的表名跟相应的记录数都显示出来,统计就不用这么麻烦了。

  • 相关阅读:
    JSP指令用来设置整个JSP页面相关的属性
    JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期
    JSP 开发环境搭建
    JSP(Java Server Pages,即:Java服务器页面
    JSP 国际化
    JSP 调试
    JSP 异常处理
    JSP 自定义标签
    JSP JavaBean
    JSP 标准标签库(JSTL)
  • 原文地址:https://www.cnblogs.com/seasons1987/p/2568360.html
Copyright © 2011-2022 走看看