2016-07-29 6 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 서버에서 사용되지 않습니다. 오류 메시지는 아주 명확하게 보입니다. –

답변

2

코드에 구문 오류가 여러 개 있습니다. 단지 첫 번째 오류입니다.

  1. then

    내가 포장하고 싶은 end

후 더 if 없다 당신은 if/else

  • 에 변수 할당하기 전에 set 필요한 곳에 if
  • 에 사용할 수 없습니다 두 블록 안에 if/else의 코드는 begin 및입니다., 명확성을 위해 다른 언어의 중괄호와 매우 비슷합니다.

    완전 수정 코드 :

    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;