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 2272 게시물 읽기
No. 2272
생선된 테이블 쿼리로 만들기
작성자
이명오(hiraga)
작성일
2008-08-14 13:39
조회수
8,911

이미 만들어진 테이블을 
명령어를 이용해서 쿼리로 다시 만들고싶은데요
방법이 없을까요...

MS-SQL은 있는데..머 인덱스같은건 안만들어졌던거같은데......
암튼.. 시스템은 유닉스구요

쿼리로 만드는 방법 아시는 분 리플 부탁해요^^

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

그냥 Sybase Central이용하세요~

지연님이 2008-08-14 15:20에 작성한 댓글입니다. Edit
dbunload 를 이용하시는건 어떠신지~
정남식(그라목손)님이 2008-08-14 18:57에 작성한 댓글입니다.

Sybsystemprocs에 설치하시고 sp__revtable tablename 로 보실수 있습니다.
지금은 유료화되고 있는 추세지만 Ed Barlow에서 아직까지 무료로 배포되는 sp에요.



/* Procedure copyright(c) 1995 by Edward M Barlow */

/******************************************************************************

**

** Name : sp__revtable

**

** Created By : Ed Barlow

**

******************************************************************************/

use master

go

dump tran master with no_log

go

IF EXISTS (SELECT * FROM sysobjects

WHERE name = 'sp__revtable'

AND type = 'P')

DROP PROC sp__revtable

go

create proc sp__revtable(@objname char(30)=NULL)

as

begin

declare @objid int

declare @cnt int, @status tinyint, @type tinyint, @buffer varchar(70)

declare @fldname char(30),@maxcnt int,@prec int, @scale int, @maxnamelen int

set nocount on

if @objname is null

begin

select convert(varchar(70), 'Usage: sp__revtable @objname')

return -1

end

select @objid=object_id(@objname)

if @objid is null

begin

select convert(varchar(70), 'Object '+@objname+' Not Found')

return -1

end

create table #tmp ( row_id int, tbl_txt varchar(70) )

insert #tmp values (-1,'CREATE TABLE '+@objname)

insert #tmp values ( 0,'(')

select @cnt=1

select @maxcnt=count(*) from syscolumns c where c.id = @objid

select @maxnamelen = max(len(name))+2

from syscolumns

where id = @objid

while 1=1

begin

/* We are trying to allign the fields */

select

/* output is c.name for n characters */

@buffer=' "' + substring(c.name+'"'+space(30),1,@maxnamelen)

+ t.name +

+ substring('(' + convert(varchar(3),c.length) + ')',

1, 6 * (charindex(t.name, 'varchar/varbinary'))),

@scale = 0,

@prec = 0,

@fldname= t.name,

@status = c.status,

@type = c.type

from syscolumns c left outer join systypes t

on c.usertype = t.usertype

where c.id = @objid

and colid=@cnt

if @@rowcount = 0 break

if @fldname = 'numeric'

begin

select @buffer=rtrim(@buffer) + '(' + convert(varchar(3),@prec)

if @scale > 0

select @buffer=rtrim(@buffer) +',' + convert(varchar(3),@scale)

select @buffer=rtrim(@buffer) + ')'

end

if @fldname = 'decimal'

begin

select @buffer=rtrim(@buffer) + '(' + convert(varchar(3),@prec) + ')'

end

if (@fldname != 'bit' and @status & 0x80 != 0)

select @buffer = rtrim(@buffer) + ' identity'

if (@fldname != 'bit' and @status & 8 != 0)

select @buffer = substring(@buffer+space(24),1,@maxnamelen+24) + 'NULL'

else

select @buffer = substring(@buffer+space(24),1,@maxnamelen+24) + 'NOT NULL'

if @cnt < @maxcnt

select @buffer = rtrim(@buffer) + ','

insert #tmp values (@cnt,@buffer)

select @cnt=@cnt+1

end

insert #tmp values (@cnt,')')

select rtrim(tbl_txt) from #tmp order by row_id

drop table #tmp

 

return(0)

end

go

grant execute on sp__revtable to public

go

민디님이 2008-09-03 06:05에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
2276rows affected 로그 남기기 [1]
초보
2008-08-25
6949
2275sybase 11.5 가지고 계신분 메일좀..부탁. [3]
김성엽
2008-08-21
7130
2274table script 받고싶은데요... [1]
머털이
2008-08-20
7719
2272생선된 테이블 쿼리로 만들기 [3]
이명오
2008-08-14
8911
2270ASE LOAD(bcp) 관련 문의 합니다. 답변 부탁합니다. [2]
초보
2008-08-08
7742
2269sybase IQ client/server 프로토콜 cmdseq 스펙 아시는분 계신가요?
letsgofast
2008-08-07
7568
2268한글깨지는 문제 해결방법이 있을까요? [1]
권환희
2008-08-06
8224
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다