–هذا السكريبت منقول من موقع SqlServerCentral
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

–******************

–Undocumented procedure “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

–******************

–Old way, cursor loop through each table to get the count
–We can also use TABLE data type instead of temp. tables

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