web-dev-qa-db-ja.com

テーブル内のSQLカウント行

テーブルに行がいくつあるかを示すSQLクエリをデータベースに送信する必要があります。 SELECTを使用してテーブル内のすべての行を取得し、それらをカウントすることはできますが、この方法でそれを行うのは好きではありません。テーブル内の行数をSQLサーバーに問い合わせる他の方法はありますか?

18
Federico Capece

はい、SELECT COUNT(*) FROM TableName

39
CyberDude
select sum([rows])
from sys.partitions
where object_id=object_id('tablename')
 and index_id in (0,1)

非常に高速ですが、非常にまれに不正確です。

7

このクエリを使用:

Select
    S.name + '.' + T.name As TableName ,
    SUM( P.rows ) As RowCont 

From sys.tables As T
    Inner Join sys.partitions As P On ( P.OBJECT_ID = T.OBJECT_ID )
    Inner Join sys.schemas As S On ( T.schema_id = S.schema_id )
Where
    ( T.is_ms_shipped = 0 )
    AND 
    ( P.index_id IN (1,0) )
    And
    ( T.type = 'U' )

Group By S.name , T.name 

Order By SUM( P.rows ) Desc
4

ここにクエリがあります

select count(*) from tablename

 or 

select count(rownum) from studennt
2
Lova Chittumuri

テーブルを右クリックし、プロパティ->ストレージを選択すると、行数が表示されます。ビューの行カウントには以下を使用できます

SELECT SUM (row_count) 
FROM sys.dm_db_partition_stats 
WHERE object_id=OBJECT_ID('Transactions')    
AND (index_id=0 or index_id=1)`
1
Dustin