国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

MSSQL數據庫統計所有表的記錄數

2024-07-21 02:47:35
字體:
來源:轉載
供稿:網友
MSSQL數據庫統計所有表的記錄數

今天需要篩選出來庫中行數不為零的表,于是動手寫下了如下存儲過程。

CREATE PROCEDURE TableCount AS BEGINSET NOCOUNT ONDECLARE @t1 AS TABLE(id INT IDENTITY,NAME NVARCHAR(50),RowsCount INT)DECLARE @indexid AS INTDECLARE @maxid AS INTDECLARE @count AS INTDECLARE @name AS VARCHAR(50)DECLARE @sqlstr AS NVARCHAR(500)INSERT INTO @t1 SELECT NAME,0 FROM dbo.sysobjects WHERE type='U'SELECT @maxid=MAX(id),@indexid=1 FROM @t1WHILE(@maxid>=@indexid)BEGINSELECT @name = name FROM @t1 WHERE id=@indexidSET @sqlstr = 'SELECT @Count1=COUNT(0) FROM '+@nameexec sp_executesql @sqlstr,N'@Count1 int output',@count outputUPDATE @t1 SET RowsCount=@count WHERE  id=@indexidSET @indexid=@indexid+1ENDSET NOCOUNT OFFSELECT * FROM @t1 WHERE RowsCount>0ENDGOEXEC TableCountGO

這樣大功告成!

事后上網查閱相關資料發現有更簡便的方法,貼在這里供大家參考吧。

CREATE TABLE #temp (Name VARCHAR (255), RowsCount INT)EXEC sp_MSforeachtable 'INSERT INTO #temp SELECT ''?'', COUNT(0) FROM ?'SELECT Name, RowsCount FROM #temp WHERE RowsCount>0 ORDER BY NameDROP TABLE #temp

注: 系統存儲過程sp_MSforeachtable和sp_MSforeachdb,用于遍歷每個表和遍歷每個數據庫。

總結,遇到問題還是先查一下有沒有現成的方法能省不少的時間的,而且還可以學習到新的知識。

@空紫竹提供的更快捷的方法: (2015-03-27編輯)

select rows,OBJECT_NAME(id) as TABLENAME from sysindexes where indid=0


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荃湾区| 四平市| 太仓市| 札达县| 武冈市| 鄢陵县| 海淀区| 阿瓦提县| 扶绥县| 乡宁县| 新乡县| 都江堰市| 松溪县| 正蓝旗| 德昌县| 陆河县| 习水县| 吴忠市| 亚东县| 广水市| 长垣县| 赤城县| 确山县| 武平县| 彭州市| 麻江县| 元阳县| 庆阳市| 勃利县| 察隅县| 阿勒泰市| 广西| 新郑市| 民乐县| 天长市| 高台县| 汉中市| 安陆市| 旬阳县| 安义县| 上蔡县|