2016-07-29 9 views
0

Ich habe ein Problem, das den folgenden Fehler ergibt.SQL varaibles wenn Aussage

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 

Dies ist der Fehler: Msg 156, Ebene 15, Status 1, Zeile 5 Falsche Syntax nahe dem Schlüsselwort 'dann'.

+1

'then' nicht nach' if' in SQL Server verwendet. Die Fehlermeldung scheint ziemlich klar zu sein. –

Antwort

2

Sie haben mehrere Syntaxfehler in Ihrem Code, das ist nur der erste.

  1. then ist nicht mit einem if
  2. Sie benötigen einen set vor Ihrer Variablenzuweisungen in der if/else
  3. Es gibt keine if nach dem

Ich mag end erlaubt die einzuwickeln Code innerhalb der beiden Blöcke eines if/else mit begin und end, ähnlich wie die geschweiften Klammern in anderen Sprachen, für die Klarheit.

Vollständig korrigierte Code:

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;