易丰科技

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3444|回复: 2
打印 上一主题 下一主题

列示资料库裹各资料表的资料笔数

[复制链接]

111

主题

117

帖子

3588

积分

论坛元老

Rank: 8Rank: 8

积分
3588
跳转到指定楼层
楼主
发表于 2011-10-7 10:27:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. SELECT
  2.     [TableName] = so.name,
  3.     [RowCount] = MAX(si.rows)
  4. FROM
  5.     sysobjects so,
  6.     sysindexes si
  7. WHERE
  8.     so.xtype = 'U'
  9.     AND
  10.     si.id = OBJECT_ID(so.name)
  11. GROUP BY
  12.     so.name
  13. ORDER BY
  14.     2 DESC
复制代码

回复

使用道具 举报

111

主题

117

帖子

3588

积分

论坛元老

Rank: 8Rank: 8

积分
3588
沙发
 楼主| 发表于 2011-10-7 10:31:44 | 只看该作者
另一种方式
  1. CREATE PROCEDURE dbo.listTableRowCounts
  2. AS
  3. BEGIN
  4.     SET NOCOUNT ON
  5.     DECLARE @SQL VARCHAR(255)
  6.     SET @SQL = 'DBCC UPDATEUSAGE (' + DB_NAME() + ')'
  7.     EXEC(@SQL)
  8.     CREATE TABLE #foo
  9.     (
  10.         tablename VARCHAR(255),
  11.         rc INT
  12.     )
  13.      
  14.     INSERT #foo
  15.         EXEC sp_msForEachTable
  16.             'SELECT PARSENAME(''?'', 1),
  17.             COUNT(*) FROM ?'
  18.     SELECT tablename, rc
  19.         FROM #foo
  20.         ORDER BY rc DESC
  21.     DROP TABLE #foo
  22. END
复制代码
回复 支持 反对

使用道具 举报

111

主题

117

帖子

3588

积分

论坛元老

Rank: 8Rank: 8

积分
3588
板凳
 楼主| 发表于 2011-10-7 10:34:23 | 只看该作者

第三种方式 user defined function

  1. CREATE FUNCTION dbo.udf_Tbl_RowCOUNT (

  2.         @sTableName sysname  -- Table to retrieve Row Count
  3.         )

  4.     RETURNS INT -- Row count of the table, NULL if not found.

  5. /*
  6. * Returns the row count for a table by examining sysindexes.
  7. * This function must be run in the same database as the table.
  8. *
  9. * Common Usage:   
  10. SELECT dbo.udf_Tbl_RowCOUNT ('')

  11. * Test   
  12. PRINT 'Test 1 Bad table ' + CASE WHEN SELECT
  13.        dbo.udf_Tbl_RowCOUNT ('foobar') is NULL
  14.         THEN 'Worked' ELSE 'Error' END
  15.         
  16. * © Copyright 2002 Andrew Novick http://www.NovickSoftware.com
  17. * You may use this function in any of your SQL Server databases
  18. * including databases that you sell, so long as they contain
  19. * other unrelated database objects. You may not publish this
  20. * UDF either in print or electronically.
  21. ***************************************************************/

  22. AS BEGIN
  23.    
  24.     DECLARE @nRowCount INT -- the rows
  25.     DECLARE @nObjectID int -- Object ID

  26.     SET @nObjectID = OBJECT_ID(@sTableName)

  27.     -- Object might not be found
  28.     IF @nObjectID is null RETURN NULL

  29.     SELECT TOP 1 @nRowCount = rows
  30.         FROM sysindexes
  31.         WHERE id = @nObjectID AND indid < 2

  32.     RETURN @nRowCount
  33. END
  34. GO

  35. GRANT  EXECUTE  ON [dbo].[udf_Tbl_RowCOUNT]  TO PUBLIC
  36. GO
复制代码
使用方式
  1. use pubs -- assuming the UDF was created in pubs
  2. go

  3. SELECT [name]
  4.      , dbo.udf_Tbl_RowCOUNT ([name]) as [Row Count]
  5.     FROM sysobjects
  6.     WHERE type='U' and name != 'dtproperties'
  7.     ORDER BY [name]
  8. GO
复制代码


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|易丰科技

GMT+8, 2024-10-12 07:18 , Processed in 0.043578 second(s), 21 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表