zoukankan      html  css  js  c++  java
  • SQL-游标-查询数据库中的所有表的数据个数

    --sql语句-游标等使用
    
    declare @sql nvarchar(500)  
    declare @TableName nvarchar(100)  
    declare @i INT
    declare @j nvarchar(20)
    declare @cstucount INT
    --上方设置变量
    set @i = 1--初始值
    declare mCursor cursor  --设置游标
    for  --for循环
    select name from sysobjects where xtype='U'  --获取所有的表名
    open mCursor  --游标的使用开始,打开游标
    fetch NEXT from mCursor into @TableName  --for循环中获取下一条记录
    while @@fetch_status = 0   --@@fetch_status全局变量,0表示语句获取成功,-1,-2均是失败
        begin --开始
    set @sql='select @a=count(*) from ' + QUOTENAME(@TableName) --设置sql语句到变量@sql
    exec sp_executesql @sql,N'@a int output',@cstucount OUTPUT -- 执行语句,且将得到的值使用变量赋值@cstucount即为@a拿到的值
    if @cstucount>0 --如果记录数>0表示有数据,则不进行重设置标识列
    BEGIN
    print ''+Convert(nvarchar(10),@i)+'个,'+@TableName+',大于0,值为='+CONVERT(nvarchar(10),@cstucount)
    END
    ELSE
    BEGIN
    --set @sql='DBCC CHECKIDENT('+QUOTENAME(@TableName)+', RESEED, 1)' --这句查了一段时间,语句中拿的不太一样,不过这里直接给他放QUOTENAME节可以了,QUOTENAME能够将对象编程有效的字符串
    --exec(@sql) --执行语句
    print ''+Convert(nvarchar(10),@i)+'个,'+@TableName+',小于等于0,值为='+CONVERT(nvarchar(10),@cstucount)
    END
    set @i=@i+1 --设置i=i+1
            fetch NEXT from mCursor into @TableName  --拿下一个数据
        end  
    close mCursor  --关闭游标
    deallocate mCursor  --删除游标
    go  
    --显示结果  
  • 相关阅读:
    Qt项目时隔数月再次打开竟出现bug
    软件测试分类
    为什么要搭建自动化测试框架
    黑盒测试常用方法
    软件测试:闰年判断
    等价类划分的应用
    软件测试学习第二周:等价类划分
    软件测试的目的
    软件测试学期总结
    集成测试深度理解
  • 原文地址:https://www.cnblogs.com/danlis/p/6305971.html
Copyright © 2011-2022 走看看