나는 여러 테이블에서 문자열을 작성한 다음이를 반환하는 저장 프로 시저를 작성했습니다. 그것은 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 배치 쿼리로 실행될 때 무슨 일이 일어나는지 확인했습니다.
아무도 도와 줄 수 있습니까?