티스토리 뷰

SQL

[MSSQL] 테이블 생성 및 삭제

Jane Kwon 2021. 3. 4. 18:01
반응형

 

팀 이동 후 처음 맡은 업무가 이벤트 데이터베이스를 생성해서 CRUD하는 작업이라

이벤트 테이블을 생성하는 작업이 필요하다.

CREATE TABLE dbo.EVENT(
    ID          varchar(15)     NOT NULL    PRIMARY KEY,
    TITLE       varchar(1000)   NOT NULL,
    START_AT    datetime        NOT NULL,
    END_AT      datetime        NOT NULL,
    REG_DATE    datetime        NOT NULL    DEFAULT GETDATE()
)
CREATE TABLE dbo.EVENT_DETAILS(
    ID                      varchar(15)     NOT NULL    PRIMARY KEY,
    EVENT_ID                varchar(15)     NOT NULL,
    PRODUCT                 varchar(15)     NOT NULL,
    ORIGIN_PRICE            INT             NOT NULL,
    SALE_PRICE              INT             NOT NULL,
    ACTIVATED               CHAR(1)         NOT NULL,
    UPDATER_MEMBER_NUMBER   INT,
    UPDATED_AT              datetime,
    CREATOR_MEMBER_NUMBER   INT,
    CREATED_AT              datetime
)

생성하고자 하는 테이블에 컬럼명, 타입, 그 외 필요한 조건을 걸어 생성해주면 된다.

그리고 나중에 해당 테이블 컬럼에 대한 설명을 볼 수 있도록 코멘트를 달아준다.

EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', 'PK', 'USER', DBO, 'TABLE', EVENT, 'COLUMN', ID;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '이벤트 관리용 타이틀', 'USER', DBO, 'TABLE', EVENT, 'COLUMN', TITLE;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '이벤트 시작일', 'USER', DBO, 'TABLE', EVENT, 'COLUMN', START_AT;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '이벤트 종료일', 'USER', DBO, 'TABLE', EVENT, 'COLUMN', END_AT;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '등록일자', 'USER', DBO, 'TABLE', EVENT, 'COLUMN', REG_DATE;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', 'PK', 'USER', DBO, 'TABLE', EVENT_DETAILS, 'COLUMN', ID;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', 'EVENT DB ID', 'USER', DBO, 'TABLE', EVENT_DETAILS, 'COLUMN', EVENT_ID;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', 'PRODUCT', 'USER', DBO, 'TABLE', EVENT_DETAILS, 'COLUMN', PRODUCT;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '정가', 'USER', DBO, 'TABLE', EVENT_DETAILS, 'COLUMN', ORIGIN_PRICE;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '할인가', 'USER', DBO, 'TABLE', EVENT_DETAILS, 'COLUMN', SALE_PRICE;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '활성화 여부', 'USER', DBO, 'TABLE', EVENT_DETAILS, 'COLUMN', ACTIVATED;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '최근 수정자 회원번호', 'USER', DBO, 'TABLE', EVENT_DETAILS, 'COLUMN', UPDATER_MEMBER_NUMBER;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '최근 수정일자', 'USER', DBO, 'TABLE', EVENT_DETAILS, 'COLUMN', UPDATED_AT;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '생성자 회원번호', 'USER', DBO, 'TABLE', EVENT_DETAILS, 'COLUMN', CREATOR_MEMBER_NUMBER;
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '생성일자', 'USER', DBO, 'TABLE', EVENT_DETAILS, 'COLUMN', CREATED_AT;

코멘트를 보려면 아래와 같은 쿼리에 테이블명만 해당 테이블명으로 수정해주면 된다.

SELECT OBJTYPE, OBJNAME, NAME, VALUE FROM ::FN_LISTEXTENDEDPROPERTY(NULL, 'SCHEMA', 'DBO', 'TABLE', 'EVENT', 'COLUMN', DEFAULT)
SELECT OBJTYPE, OBJNAME, NAME, VALUE FROM ::FN_LISTEXTENDEDPROPERTY(NULL, 'SCHEMA', 'DBO', 'TABLE', 'EVENT_DETAILS', 'COLUMN', DEFAULT)

 

 

 

또한 테이블을 삭제해야할 땐 DROP 해주면 되는데 항상 그렇듯 삭제는 조심히 사용할 것!

DROP TABLE dbo.EVENT
DROP TABLE dbo.EVENT_DETAILS

 

 

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함