database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
ㆍSybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Sybase Q&A 1701 게시물 읽기
No. 1701
쿼리퀴즈를 생각해봤는데요
작성자
박상묵(guday)
작성일
2006-10-25 18:55
조회수
4,911

안녕하세요.


쿼리를 생각해봤는데요,


해당 db내에서, row count가 하나도 없는 table의 이름을 구하고 싶거든요.


구할 방법이 있나요?


아무리 생각해도 제 수준에선 안될거 같거든요.


systable의 건수 조회하는것 말고, 그냥 쿼리짜서 해볼려구요.

이 글에 대한 댓글이 총 4건 있습니다.

if exists(select 1 from sysobjects where type='P' and name = 'proc_check_0_rows')
        drop proc proc_check_0_rows
go

create proc proc_check_0_rows
as
begin
        declare cur_check_0_rows cursor for
                select name from sysobjects where type='U'
                order by name
                for read only

        declare @tname char(30)

        create table #table_list
        (tname char(30))

        open cur_check_0_rows

        fetch cur_check_0_rows into @tname

        while (@@sqlstatus = 0)
        begin
                print "Checking.. [ %1! ]", @tname
                exec ("if not exists(select * from "
                        +@tname
                        +") insert into #table_list values ('"
                        +@tname
                        +"')"
                )

                fetch cur_check_0_rows into @tname
        end

        close cur_check_0_rows

        deallocate cursor cur_check_0_rows

        print ""
        print "* 0 Rows table list"
        print "-------------------"
        select * from #table_list

        print "%1! Tables has no data rows!", @@rowcount

        drop table #table_list
end
go

exec proc_check_0_rows
go

결과 예제는 여기를 참조하세요 --> http://www.iquser.net/bbs/zboard.php?id=com_ase&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=22

이렇게님이 2006-10-30 10:12에 작성한 댓글입니다.
이 댓글은 2006-10-30 10:24에 마지막으로 수정되었습니다. Edit

도움감사드립니다.
이해하지는 못하겠네요 T-T 공부좀 더 할께요.

박상묵(guday)님이 2006-10-30 14:40에 작성한 댓글입니다.

1. sysobject의 type이 'U'인걸 커서로 선언한다(U는 user table임)


2. 커서 오픈 해서 data가 존재하지 않으면(if not exist) temp table에 해당 table이름 insert(이거 dynamic sql 잘수행되나요?...버젼이 옜날거(제꺼)는 안되는데요)


3. table이름이 있는동안 loop


이겁니다~~

지연님이 2006-10-30 22:25에 작성한 댓글입니다. Edit

ASE 버전 12.5.3에서 만들었습니다.

Dynamic SQL이 잘 됩니다.

지연님이 쓰시는 ASE 버전은 어떤것인지요?

이렇게님이 2006-10-31 14:17에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1705SQL Advantage Replacement - ASE Isql [1]
추헌진
2006-10-31
5033
1704[질문입니다]데이터베이스 복원에 대하여 [1]
장학우
2006-10-31
4991
1702인덱스 관련 질문입니다. [3]
초보
2006-10-30
6217
1701쿼리퀴즈를 생각해봤는데요 [4]
박상묵
2006-10-25
4911
1699인덱스 관련 질문입니다. [2]
크라운
2006-10-25
5501
1698SYSOPTION테이블에서, 두번째 컬럼이, [4]
박상묵
2006-10-24
5182
1697백업을 하는데 이런 메세지가 나옵니다. 도와주세요 [2]
초보자
2006-10-23
4534
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다