数据库里有好多表,几千张。怎么查出行数为0的那些?

解决方案 »

  1.   

    行為零?MARK一下
    我被問糊塗了
      

  2.   

    DECLARE @TABLENAME VARCHAR(100)
    DECLARE @SQLSTR VARCHAR(2000)
    DECLARE TABLE_CURSOR CURSOR
       FOR SELECT NAME FROM SYSOBJECTS WHERE XTYPE='U'
       OPEN TABLE_CURSOR
          FETCH NEXT FROM TABLE_CURSOR INTO @TABLENAME
          WHILE @@FETCH_STATUS = 0
             BEGIN
       SELECT @SQLSTR='SELECT TOP 1 * FROM '+@TABLENAME
       EXEC(@SQLSTR)
                IF @@ROWCOUNT=0 
          BEGIN
    PRINT @TABLENAME
          END
       FETCH NEXT FROM TABLE_CURSOR INTO @TABLENAME
             END
          CLOSE TABLE_CURSOR
          DEALLOCATE TABLE_CURSOR
      

  3.   


    declare @vTableName nvarchar(100)
    declare #cCursor cursor for
    select name from sysobjects where xtype='U'
    open #cCursor
    fetch next from #cCursor into @vTableName
    while @@fetch_status=0
    begin
    --print 'if not (exists(select top 1 0 from '+@vTableName+')) print '''+@vTableName+''' '
    exec('if not (exists(select top 1 0 from '+@vTableName+')) print '''+@vTableName+''' ')
    fetch next from #cCursor into @vTableName
    end
    close #cCursor
    deallocate #cCursor
      

  4.   

    对表的主键进行COUNT(COLUMNNAME)运算.如果返回为0就说明该表无记录.