출처 - http://lovedb.tistory.com/58
출처 - http://kmj1107.tistory.com/136
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는 테이블(사용자 정의)를 의미한다.
요새 쿼리에서 임시테이블을 자주 사용하게 됩니다.
그런데 쿼리를 짜다가 여러번 테스트를 하다보면 임시테이블(#temp)이 이미 존재한다고 예외가 발생 합니다.
매번 Drop table 를 이용하여 (Drop table #temp) 매번 번거롭게 지웠지만
OBJECT_ID 라는게 있더라구요.
방법은 간단합니다.
OBJECT_ID 를 이용한 임시테이블 존재여부 확인 & 삭제 |
IF OBJECT_ID('tempdb..#임시테이블') IS NOT NULL -- 임시테이블이 있을 경우 DROP TABLE #임시테이블 -- 임시테이블 삭제
|
예를 들면
임시테이블 명 : #temp
예제) OBJECT_ID 를 이용한 임시테이블 존재여부 확인 & 삭제 |
IF OBJECT_ID('tempdb..#Temp') IS NOT NULL DROP TABLE #Temp
|
'[ DataBase ] > DB etc.' 카테고리의 다른 글
mssql 에서 char (0) | 2014.05.26 |
---|---|
nvarchar(max) (0) | 2014.02.07 |
RAISERROR 예제 및 .NET에서 사용하기 (0) | 2014.01.21 |
ERWin을 이용해서 mysql 데이터베이스의 ERD 뽑기 (0) | 2012.09.12 |
ERWin 사용 방법 (0) | 2012.09.12 |
댓글