2012-07-26 2 views
0

나는 여러 테이블에서 문자열을 작성한 다음이를 반환하는 저장 프로 시저를 작성했습니다. 그것은 SSMS에서 완벽하게 작동합니다. SP는 타사 소프트웨어에서 호출되어 올바른 값이 반환되지 않습니다.SQL 일괄 반환 RPC 다른 결과

SP의 핵심은 파일에 변경된 자산 태그를 생성하는 것입니다. . 여기 @SJID INT AS 이 @Asset VARCHAR를 선언 BEGIN 저장 프로 시저에 대한 매개 변수를 추가 (2000) SET

를 OFF ANSI_NULLS - SP에서

가 가

ALTER이 절차는 [DBO] [usp_ACREpdflibTAG] 가 이하

SELECT @Asset = COALESCE (@Asset '') + {FN의 CONCAT (tPdfChanges.ShortHand 'tPdfChanges FROM = 1')} WHERE SubJobID = @SJID

DECLARE @AssetTag VARCHAR (4000)

SET @AssetTag = (SELECT 
'@@@[email protected]@@' + 
@Asset 
+ 'Desc=' + a.sName 
+ ',UPC=' + h.sBarcodeStd 
+ ',Cat=' + CAST(b.GACategoryID AS VARCHAR(10)) 
+ ',Type=' + CAST(d.GAProductTypeID AS VARCHAR(10)) 
+ ',PackFormat=' + CAST(f.GAPackTypeID AS VARCHAR(10)) 
+ ',DispDate=' + ISNULL(CONVERT (varchar , g.DCompleted ,105), '') 
+ '@@@[email protected]@@' 
FROM 
tSubJob a 
WHERE 
a.ID = @SJID) 


select @AssetTag 
END 

내가 작업중인 비즈니스에 민감하기 때문에 테이블 이름을 쿼리에서 제거해야했습니다. 이 SSMS에서 실행하면

는 다음이 반환됩니다 소프트웨어의 타사 조각을 실행하면

@@@[email protected]@@CutChg=1,DesChg=1,UPCChg=1,ProChg=1,IngChg=1,NutChg=1,StoreChg=1,CookChg=1,TtlChg=1,LegChg=1,AgyChg=1,WeightChg=1,CountryChg=1,ImpChg=1,OtherChg=1,Desc=Testing Triggers,UPC=,Cat=27,Type=3,PackFormat=38,[email protected]@@[email protected]@@ 

, 다음이 반환됩니다

@@@[email protected]@@CutChg=1,Desc=Testing Triggers,UPC=,Cat=27,Type=3,PackFormat=38,[email protected]@@[email protected]@@ 

당신이 볼 수 있듯이, 그것은 자산 태그의 첫 번째 부분에서 하나의 변경 사항과 일치했습니다.

프로파일 러를 사용하여 SSMS에서 실행했을 때 RPC로, 타사 소프트웨어에서 SQL 배치 쿼리로 실행될 때 무슨 일이 일어나는지 확인했습니다.

아무도 도와 줄 수 있습니까?

답변

0

저는이 문제를 직접 해결했습니다. 프로필러의 프로세스 ID를보고, 더 자세히 살펴 보았습니다. 그리고 파티 용 소프트웨어가 행 개수를 1로 설정하고있었습니다.