如何在SQL查询分析器里运行查找其中一个数据库内的所有表的行数

来源:百度知道 编辑:UC知道 时间:2024/06/01 18:51:48
请指教,因为这个数据库中上百个表需要统计出每个表的行数。救命啊
请给出具体的实现方式或代码 数据库名为seadb 怎么列出seadb下所有120个表每个的行数
我用select * form seadb.dbo.sysobjects where utype='U'得到了所有用户表,可是怎么取到行数呢

2楼的回答还是不太明白,直到TABLE N不是要到TABLE 120,每天要做的话,死人的

2005听说是有这个功能,现在的是SQL2000

xyphoenix 你的程序看到是空值

我的答案你还不能得到结果吗?我在SQL SERVER 2000下面测试通过,取到的结果都是正确的

刚刚想了一下,如果你要查行数的话,用这个SQL
drop table #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

第一个GO事务是检查当前数据库中是否已经存在名为table_name的表,如果有用就删除该表。
第二个GO事务是创建一个新的名为table_name的表。
IF 条件
BEGIN
语句(多条,单条时不用BEGIN...END)
END
ELSE
BEGIN
语句(多条)
END

EXISTS(语句)是SQL函数,判断是否存在查询结果。
sysobjects 是系统表,记录着当前数据库中所有表。
TYPE ='U'时是用户表,非系统表。