IF OBJECT_ID('tempdb..#alert') IS NOT NULL
DROP TABLE #alert
create table #alert(order varchar(50))
BULK INSERT #alert
FROM 'C:\OrderImport\NewOne.txt'
WITH
(
FIELDTERMINATOR ='\t',
ROWTERMINATOR ='\n',
FIRSTROW = 2
)
는 그냥 ELSE를 제거하고 그것을 떨어질 것이다 존재하고 새로 만들기 않는 경우는, 테이블의 존재하지 않는지 확인합니다. 왜냐하면 만약 존재하지 않으면 contorl은 ELSE 블록으로 점프 할 것이지만 만약 존재한다면 컨트롤은 IF 블록에 들어갑니다. IF 블록에서 한 블록 만 실행하기 때문에 ELSE 블록을 건너 뛰고 건너 뜁니다.
IF OBJECT_ID('tempdb..#alert') IS NOT NULL --<-- if not null
BEGIN
DROP TABLE #alert --<-- Drops the table
END
ELSE
CREATE TABLE --<-- This statement Never gets executed
-- since the control fell in the 1st block
-- it never goes into ELSE Block
당신이 이런 일을 할 수 IF.. ELSE
블록을 사용하려는 경우 ...
IF OBJECT_ID('tempdb..#alert') IS NOT NULL
BEGIN
DROP TABLE #alert
create table #alert(order varchar(50))
END
ELSE
BEGIN
create table #alert(order varchar(50))
END
'IF'와'ELSE' 문이 BEGIN'와 'END'로 묶어야합니다 '제대로 작동합니다. 그래서'IF' [뭔가]'BEGIN' [Do something]'END'. – Question3CPO
@ Question3CPO 당신이 그 블록에서 1 개 이상의 명령문을 실행하는 경우에만 그렇지만 항상'BEGIN..END' 블록을 사용하는 것이 좋습니다. :) –