[sql] 존재하는 경우 임시 테이블 삭제
즉시 두 개의 테이블을 생성하는 SQL 코드 두 줄이 있습니다.
IF TABLE EXISTS
DROP IT AND CREATE IT AGAIN
ELSE
CREATE IT
내 대사는 다음과 같습니다
CREATE TABLE ##CLIENTS_KEYWORD(client_id int)
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int)
내 절차에서이 두 테이블에이 개념을 어떻게 적용 할 수 있습니까?
답변
SQL Server 2016에서는 다음을 사용할 수 있습니다.
DROP TABLE IF EXISTS ##CLIENTS_KEYWORD
이전 버전에서는 다음을 사용할 수 있습니다.
IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD', 'U') IS NOT NULL
/*Then it exists*/
DROP TABLE ##CLIENTS_KEYWORD
CREATE TABLE ##CLIENTS_KEYWORD
(
client_id INT
)
삭제하고 다시 만드는 대신 테이블을 자르는 것도 고려할 수 있습니다.
IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD', 'U') IS NOT NULL
TRUNCATE TABLE ##CLIENTS_KEYWORD
ELSE
CREATE TABLE ##CLIENTS_KEYWORD
(
client_id INT
)
답변
object_id를 검색하여 존재를 확인하십시오.
if object_id('tempdb..##clients_keyword') is not null
drop table ##clients_keyword
답변
당신이 요청한 것은 :
IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD') IS NOT NULL
BEGIN
DROP TABLE ##CLIENTS_KEYWORD
CREATE TABLE ##CLIENTS_KEYWORD(client_id int)
END
ELSE
CREATE TABLE ##CLIENTS_KEYWORD(client_id int)
IF OBJECT_ID('tempdb..##TEMP_CLIENTS_KEYWORD') IS NOT NULL
BEGIN
DROP TABLE ##TEMP_CLIENTS_KEYWORD
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int)
END
ELSE
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int)
테이블이 삭제되었는지 여부에 관계없이 항상 테이블을 생성 할 것이므로; 약간 최적화 된 솔루션은 다음과 같습니다.
IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD') IS NOT NULL
DROP TABLE ##CLIENTS_KEYWORD
CREATE TABLE ##CLIENTS_KEYWORD(client_id int)
IF OBJECT_ID('tempdb..##TEMP_CLIENTS_KEYWORD') IS NOT NULL
DROP TABLE ##TEMP_CLIENTS_KEYWORD
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int)