mamekun
5/15/2013 - 4:40 AM

sql server 2005, 2008で確認 DBの全テーブルのレコード数を取得します。

sql server 2005, 2008で確認 DBの全テーブルのレコード数を取得します。

/*
  全てのテーブルのレコード数を取得する。
*/
declare @tname nvarchar(255)
declare @recCnt int
declare @stmt nvarchar(255)
declare @tRecCnt table ( テーブル名 nvarchar(255), レコード数 int )

declare csr_tblRecCnt cursor FOR
SELECT name FROM sys.tables where is_ms_shipped = 0
 
open csr_tblRecCnt
 
fetch next FROM csr_tblRecCnt
INTO
	@tname
 
while @@fetch_status = 0
begin
	
	set @stmt = 'select @recCnt = count(*) from ' + @tname

	exec sp_executesql @stmt, N'@recCnt int OUTPUT', @recCnt = @recCnt OUTPUT
	
	insert @tRecCnt values ( @tname, @recCnt )
 
	fetch next FROM csr_tblRecCnt -- fetch
	INTO
		@tname
 
end
 
close csr_tblRecCnt
deallocate csr_tblRecCnt

-- result
select * from @tRecCnt order by テーブル名