如何快捷地查询SQL SERVER中每个用户表的表名和行数?
如:在一个SQL数据库中有200张用户表,其中有100张表中有数据,如何才能快捷地查询出哪些用户表有多少行数据?我记得以前看过一个书里写的是可以从一个系统表中查询出来,如...
如:在一个SQL数据库中有200张用户表,其中有100张表中有数据,如何才能快捷地查询出哪些用户表有多少行数据?
我记得以前看过一个书里写的是可以从一个系统表中查询出来,如果是这样的话,是从哪个系统表中查询出来?在哪个数据库中?
用你说的方法是查出了表信息,但是哪一列才是表内的记录行数呢? 展开
我记得以前看过一个书里写的是可以从一个系统表中查询出来,如果是这样的话,是从哪个系统表中查询出来?在哪个数据库中?
用你说的方法是查出了表信息,但是哪一列才是表内的记录行数呢? 展开
2个回答
展开全部
执行一下就可以了
CREATE TABLE #T ([name] nvarchar(255),rows bigint)
DECLARE @Name nvarchar(255),@Sql nvarchar(4000)
DECLARE TName CURSOR FOR
SELECT [name] FROM sysobjects WHERE xtype = 'U'
OPEN TName
FETCH NEXT FROM TName
INTO @Name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Sql='INSERT INTO #T ([name],rows) SELECT '''+@name+''' AS name, COUNT(1) AS row FROM '+@name
EXEC(@Sql)
FETCH NEXT FROM TName INTO @name
END
CLOSE TName
DEALLOCATE TName
SELECT * FROM #T
CREATE TABLE #T ([name] nvarchar(255),rows bigint)
DECLARE @Name nvarchar(255),@Sql nvarchar(4000)
DECLARE TName CURSOR FOR
SELECT [name] FROM sysobjects WHERE xtype = 'U'
OPEN TName
FETCH NEXT FROM TName
INTO @Name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Sql='INSERT INTO #T ([name],rows) SELECT '''+@name+''' AS name, COUNT(1) AS row FROM '+@name
EXEC(@Sql)
FETCH NEXT FROM TName INTO @name
END
CLOSE TName
DEALLOCATE TName
SELECT * FROM #T
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询