푸른청년 푸르게 살고있나?  
home | 살아가기 | news | 세상보기 | tip&tech | 방명록 |  
   전체
   asp
   php
   jsp
   mssql
   mysql
   informix
   linux
   unix
   win2000
   javascript
   html
   oracle
   java
   etc
    
:: Tip&Tech > mssql
[mssql]특정 디비의 모든 테이블에 row수 카운트하기
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 -- 커서가 사용하던 자원을 풀어준다.

날짜: 2003-10-30 18:15:25, 조회수: 2667

다음글 [MSSQL] 임의의 분산질의 - 리모트서버의 데이터를 읽어올때
이전글 mssql 디비 다른서버에서 복원하기

꼬리말
글쓴이 비밀번호 #스팸글방지(주인장 닉네임을 쓰시오)

  
since by 2003.03.23 / 3th 2005.07.26 / 4th 2009.04.22 made by bluesoul