Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.

MS SQL 테이블을 SQL문으로 생성하기

순서로 얘기하자면 ERWin등을 통해서 모델링을 해서 쿼리를 생성해서 테입르을 만드는게 맞겠지만 간단한 거의 경우에는 꼭 그런 수순을 밟게 되는 것도 아니고 처음엔 모델링 했지만 이게 한번에 잘 되는 작업도 아니고 중간중간에 바로 디비를 수정하게 되는 경우도 생기고 어쨌든 간에 현재 사용하는 테이블에서 SQL쿼리를 생성해야 하는 경우가 있더란 말이지...

사용자 삽입 이미지


엔터프라이즈 관리자(2000이다)에서 해당 테이블에서 [모든 작업] - [SQL 스크립트 생성]에 들어간다.

사용자 삽입 이미지

그러면 현재 선택한 테입르이 "스크립팅될 개체"에 표시된다. 이곳에 나타난 것만 SQL로 생성한다.

위의 모두표시 버튼을 누르면 왼쪽의 pub의 개체라고 된 곳에 모든 테이블이 표시되고 필요한 것만 오른쪽으로 이동하면 된다. 서식이나 옵션을 보면 약간의 설정과 어떤 형태의 쿼리문으로 나오는지가 나오는데 특별한 경우가 아니면 크게 신경을 안써도 될것 같다.(사실은 잘 모르는 부분이라.. ㅎㅎ)


-- 생성된 SQL문
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[sales]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[sales]
GO

CREATE TABLE [dbo].[sales] (
    [stor_id] [char] (4) COLLATE Korean_Wansung_CI_AS NOT NULL ,
    [ord_num] [varchar] (20) COLLATE Korean_Wansung_CI_AS NOT NULL ,
    [ord_date] [datetime] NOT NULL ,
    [qty] [smallint] NOT NULL ,
    [payterms] [varchar] (12) COLLATE Korean_Wansung_CI_AS NOT NULL ,
    [title_id] [tid] NOT NULL
) ON [PRIMARY]
GO

위에가 이렇게 생성한 쿼리문이다. 필요한 다른 곳에서 이 쿼리를 실행하면 디비가 생성된다. 다만 데이터는 나가지 않고 오직 테이블을 생성하는 쿼리만 만든다.(현재로써는 데이터도 쿼리문으로 생성을 어떻게 하는지를 좀 고민하고 있는데.. 쩝;;;)
2007/11/04 01:48 2007/11/04 01:48

쿼리분석기 개체브라우저 사용하기

역시 무식하면 몸이 고생이다.. ㅋㅋㅋㅋ

쿼리를 쓸 때 간단한 거 정도는 코딩하면서 바로 입력할 수도 있겠지만 대개는 쿼리분석기에서 돌려보고 적는다. 근데 회사에서 듀얼모니터를 쓰는 것도 아니고 컬럼이름이 id, name, num등으로만 가면 아주 행복했지만 article_id, user_email등등 좀 길거나 내가 만든 DB가 아니라면 항상 컬럼 이름은 헷갈리는 일이다. 스펠링 하나만 틀려도 에러나고..

그동안은 엔터프라이즈 메니저를 띄어놓고 쿼리분석기를 약간 작게 띄어놓고 보면서 적던가 그렇지 않으면 오타를 좀 줄일라고 테이블 디자인보기 해놓고 컬럼이름을 복사하다가 일일이 붙히곤 했다.

그런데!!!

사용자 삽입 이미지

쿼리분석기 왼편에 이런게 달려있었다. 맨날쓰면서도 먼지 자세히 보지도 않았으니 이거야 원... ㅡ..ㅡ

사용자 삽입 이미지

사용할 데이터베이스의 사용자 테이블을 열면 내가 사용할 테이블의 컬럼들이 죽~ 나온다. 속성까지....

쿼리를 작성하면서 개체분석기에서 해달 컬럽을 마우스로 Drag & Drop으로 쿼리문 가운데 원하는 위치에 던져놓으면 자동으로 쿼리값이 입력된다. 테이블명도..(테이블은 저기 나온대로 dbo.까지 들어가긴 하지만...)

이번 프로젝트 같은 경우에는 내가 만든 부분에 컬럼이 조낸 많아가지고 일일이 하느라고 겁나 빡셌는데.... 이런 방법이 있었을 줄이야...
2007/11/04 01:31 2007/11/04 01:31