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,它會檢查實存的表,如果它確實存在,它會刪除它,然後創建一個新的,你不需要在這裏ELSE語句。因爲如果它不存在,那麼控制器將跳轉到ELSE塊,但是如果它確實存在,控制將進入IF塊刪除表並跳過ELSE塊,因爲在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包圍'正常運作。所以'如果'[某事]'開始'[做某事]'結束'。 – Question3CPO
@ Question3CPO只有當你在他們的塊中執行多於1條語句時,總是使用'BEGIN..END'塊是一個好習慣。 :) –