2014-09-25 2 views
-2

아래 항목을 참조하십시오.nvarchar 값 '900905'을 데이터 유형 int로 변환 할 때 변환하지 못했습니다.

ALTER procedure [dbo].[stpxxxx] 


    @ID int = null, 
    @FKcomID int = null, 
    @type int = 1 

    as 
    begin 
    IF (@type = 1) 

    BEGIN 
    ----query A 
    SELECT  Member.PKID, Member.FKID, Person.ID, Member.FKID, Member.StartDate 
    FROM   Member INNER JOIN 
          Person ON Member.FKID = Person.PKID 
    WHERE  (Person.ID = @ID)AND (Member.FKID = @FKcomID) 

    end 

     ELSE 
    BEGIN 
    ----query B 
    SELECT  pre.PKID, pre.FKID, pre.FKPersonID 
    FROM   pre INNER JOIN 
          Person ON pre.FKID = person.PKID 
    WHERE  (Person.ID = @ID) AND (pre.FKID = @FKcomID) 


    end 

I 쿼리 A를 교환하고 함께 IF gettion의 erroe 끄트머리 경우를 B (@type = 1)이 있었다 오류

Conversion failed when converting the nvarchar value '900905 ' to data type int. 

경우 (@type = 1). 내 Sp의 문제점.

+3

마음을 사로 잡는 후미 공간을 정돈하십시오 ... 여기의 수업은 오류를주의 깊게 읽습니다. –

답변

1

공백에 문제가있는 것 같습니다. 잘못된 값에

LTRIM(RTRIM()) 

:

이보십시오.

+0

IF를 추가했습니다 (LTRIM (RTRIM (@ 유형)) = 1). 하지만 같은 오류 – user1348351

+0

미안 .. 그것은 작동합니다 .. 감사합니다 Logged – user1348351

2

값에 LTRIM(RTRIM())을 입력하면 작동합니다. 문제를 일으키는 공간이 있습니다.

관련 문제