SQL Server 查询表的记录数(3种方法,推荐第一种)

--SQL Server 查询表的记录数

--one: 使用系统表. 
SELECT object_name (i.id) TableName, 
	   rows as RowCnt 
FROM sysindexes i 
INNER JOIN sysObjects o 
	ON (o.id = i.id AND o.xType = 'U ') 
WHERE indid < 2 
ORDER BY TableName 

--****************** 

--two: 使用未公开的过程 "sp_MSforeachtable " 
CREATE TABLE #temp (TableName VARCHAR (255), RowCnt INT) 
EXEC sp_MSforeachtable 'INSERT INTO #temp SELECT ''?'', COUNT(*) FROM ?' 
SELECT TableName, RowCnt FROM #temp ORDER BY TableName 
DROP TABLE #temp 

--****************** 

-- three: 使用游标.cursor 
SET NOCOUNT ON 
DECLARE @tableName VARCHAR (255),
        @sql VARCHAR (300) 
CREATE TABLE #temp (TableName VARCHAR (255), rowCnt INT) 
DECLARE myCursor CURSOR FAST_FORWARD READ_ONLY FOR 
	SELECT TABLE_NAME 
	FROM INFORMATION_SCHEMA.TABLES 
	WHERE TABLE_TYPE = 'base table ' 
OPEN myCursor 
FETCH NEXT FROM myCursor INTO @tableName 
WHILE @@FETCH_STATUS = 0 
	BEGIN 
	EXEC ( 'INSERT INTO #temp (TableName, rowCnt) SELECT ''' + @tableName + ''' as tableName, count(*) as rowCnt from ' + @tableName) 
	FETCH NEXT FROM myCursor INTO @tableName 
	END 
SELECT TableName, RowCnt FROM #temp ORDER BY TableName 
CLOSE myCursor 
DEALLOCATE myCursor 
DROP TABLE #temp 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值