• 查询数据库中所有记录总数不为0的数据表名称


    --查询数据库中所有记录总数不为0的数据表名称

    --声明变量
    declare @TableName nvarchar(250)
     
    --声明一个游标mycursor,select语句中参数的个数必须要和从游标取出的变量名相同
    declare mycursor cursor for select name from sys.tables  order by name
     
    --打开游标
    open mycursor
     
    --从游标里取出数据赋值到我们刚才声明的变量中
    fetch next from mycursor into @TableName
     
    --判断游标的状态
    --0 fetch语句成功    
    ---1 fetch语句失败或此行不在结果集中    
    ---2被提取的行不存在
    declare @TableNameList nvarchar(4000)
    set @TableNameList=''
    while (@@fetch_status=0)
    begin
     
    --显示出我们每次用游标取出的值
    --print '游标成功取出一条数据'

    DECLARE @sql AS NVARCHAR(500),@i AS INT;
    SET @sql = N' SELECT @p=ISNULL(COUNT(1),0) FROM '+@TableName+'';
    EXEC sp_executesql @sql, N'@p AS INT OUTPUT',@p = @i OUTPUT

    --输出所有记录不为0的表名称
    IF @i>0
    BEGIN
    if(@TableNameList='')
    set @TableNameList=@TableName
    else
    set @TableNameList=@TableNameList+','+@TableName
    PRINT 'SELECT * FROM '+@TableName+';'
    END

    --用游标去取下一条记录
       fetch next from mycursor into @TableName
    end
    --关闭游标
    close mycursor
    --撤销游标
    deallocate mycursor
    select @TableNameList

  • 相关阅读:
    AcWing 900. 整数划分
    AcWing 913. 排队打水
    AcWing 897. 最长公共子序列
    AcWing 895. 最长上升子序列
    AcWing 902. 最短编辑距离
    AcWing 338. 计数问题
    AcWing 896. 最长上升子序列 II
    AcWing 779. 最长公共字符串后缀
    AcWing 282. 石子合并
    ASP.NET里常用的JS (转贴)
  • 原文地址:https://www.cnblogs.com/xqf222/p/3306751.html
Copyright © 2020-2023  润新知