select count(*) from 테이블명
요 sql문을 테이블수 만큼 돌릴수도 있다.
물론 한 50개만 넘어가도 중간에 포기할테지만..
요럴때 요긴하게 쓸수 있는 프로시저를 만들자.
요걸 이용해서 다양하게 응용할수 있을것이다.
특정날짜의 특정 테이블에 대한 카운트 수등등..
create proc pGetRowCount as
set nocount on — 결과 메시지를 뿌리지 않는다.
declare curGetTableName INSENSITIVE CURSOR — 인텐시브 커서를 선언 템프디비를 만들어서 빠름
for
select table_name from information_schema.tables
where table_type = ‘base table’
for read only — 읽기전용으로
open curGetTableName — declare에서 정의한 커서를 연다.
declare @tblName varchar(30), @sql varchar(100)
fetch from curGetTableName into @tblName — 커서에서 행을 얻어 변수에 넣는다.
while @@FETCH_STATUS = 0 — 0이면 성공적으로 가져온것
begin
select @sql = ‘select count(*) from ['+@tblName+']‘
select @sql
exec (@sql)
fetch from curGetTableName into @tblName
end
close curGetTableName
deallocate curGetTableName — 커서가 사용하던 자원을 풀어준다.
Comments
Powered by Facebook Comments