2016-07-29 12 views
0

次のエラーが発生する問題があります。SQL varaibles ifステートメント

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 

これはエラーです:メッセージ156、レベル15、状態1、行5 'then'の近くの構文が正しくありません。

+1

は 'then'はif''後にSQL Serverで使用されていません。エラーメッセージはかなり明白です。 –

答えて

2

コードに複数の構文エラーがありますが、これは最初のエラーです。

  1. thenは、あなたは私がラップしたいとend

後にはifはありませんif/else

  • であなたの変数の代入前setが必要if
  • で許可されていませんif/elseの2つのブロック内のコードbeginendは、明確にするために、他の言語の中括弧によく似ています。

    完全に修正されたコード:

    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; 
    
  • 関連する問題