2016-07-29 223 views
0

我遇到了導致出現以下錯誤的問題。SQL變量如果聲明

declare @transDate datetime = GETDATE(); 
declare @main_work_center as varchar(50) = 'PMOM'; 
declare @team as varchar(1) = ''; 
declare @full_work_center as varchar(50); 
IF(@team = '' OR @team IS NULL) then 
    @full_work_center = @main_work_center; 
else 
    @full_work_center = @main_work_center + @team; 
end if 

這是錯誤:Msg 156,Level 15,State 1,Line 5關鍵字'then'附近的語法錯誤。

+1

'then'沒有在SQL Server if'後'使用。錯誤消息似乎很清楚。 –

回答

2

您的代碼中有多個語法錯誤,這只是第一個。

  1. then不與if
  2. 允許你需要你的變量賦值之前setif/else
  3. 還有就是end

我喜歡包裹後無if代碼if/elsebeginend,非常類似於其他語言的花括號,爲了清晰起見。

完全糾正代碼:

declare @transDate datetime = GETDATE(); 
declare @main_work_center as varchar(50) = 'PMOM'; 
declare @team as varchar(1) = ''; 
declare @full_work_center as varchar(50); 
IF(@team = '' OR @team IS NULL) 
begin 
    set @full_work_center = @main_work_center; 
end 
else 
begin 
    set @full_work_center = @main_work_center + @team; 
end;