본문 바로가기

DBMS/SQL Server

[SQL Server] OBJECT_ID 함수를 이용한 개체 존재 여부 확인

 

OBJECT_ID 함수를 이용해서 개체의 존재 여부를 확인 후 개체를 삭제해 보자.

 

오라클의 경우 CREATE OR REPLACE 를 사용하면 CREATE 할 때 기존에 같은 이름의 개체가 있으면 

REPLACE 하고 개체가 없으면 CREATE 하는 기능이 있지만 MS SQL Server 에는 없다.

 

테이블에 개체 ID가 있는지 확인해서 지정한 테이블이 있는지 확인한다.

테이블이 있는 경우 삭제되고, 테이블이 없는 경우 DROP TABLE 문이 실행되지 않는다.

 

 USE AdventureWorks2008R2;

 GO

 IF OBJECT_ID (N'dbo.AWBuildVersion', N'U') IS NOT NULL

 DROP TABLE dbo.AWBuildVersion;

 GO 

 

OBJECT_ID 함수 내의 dbo.AWBuildVersion은 사용할 개체를 의미하고,

U는 스키마 범위 개체 형식을 의미한다.

 

U는 테이블(사용자 정의)를 의미한다.

 

개체 유형:

AF = 집계 함수(CLR)

C = CHECK 제약 조건

D = DEFAULT(제약 조건 또는 독립 실행형)

F = FOREIGN KEY 제약 조건

FN = SQL 스칼라 함수

FS = 어셈블리(CLR) 스칼라 함수

FT = 어셈블리(CLR) 테이블 반환 함수

IF = SQL 인라인 테이블 반환 함수

IT = 내부 테이블

P = SQL 저장 프로시저

PC = 어셈블리(CLR) 저장 프로시저

PG = 계획 지침

PK = PRIMARY KEY 제약 조건

R = 규칙(이전 스타일, 독립 실행형)

RF = 복제 필터 프로시저

S = 시스템 기본 테이블

SN = 동의어

SO = 시퀀스 개체

SQ = 서비스 큐

TA = 어셈블리(CLR) DML 트리거

TF = SQL 테이블 반환 함수

TR = SQL DML 트리거

TT = 테이블 유형

U = 테이블(사용자 정의)

UQ = UNIQUE 제약 조건

V = 뷰

X = 확장 저장 프로시저