0
MS-Access 2010 프론트 엔드에서 저장 프로 시저 및 MS-SQl 서버 2008 백엔드를 사용하여 저장 프로 시저에 대한 스크립트를 적용합니다. 입력 매개 변수가 두 조인 된 테이블의 값과 일치하는 TestID를 검색하는 저장 프로 시저를 만들었습니다. 내 문제는 select 문이 출력 매개 변수로 반환하는 값을 캡처하려고합니다. 여기 내 SQL은 절차 Select 문의 결과와 동일하게 출력 매개 변수 설정
CREATE PROCEDURE upGetTestIDForAnalyte @WOID nvarchar(60), @SampleID nvarchar(60),@Analyte nvarchar(60), @RecordsAffected int OUT
AS
SELECT TestID = t1.TestID
FROM tblWOSampleTest t1
JOIN tblTest t2
ON t1.TestID=t2.TestID;
WHERE @WOID = t1.WOID AND @SampleID = t1.SampleID AND @Analyte = t2.Analyte
set @RecordsAffected = @@Identity
GO
저장 나는 그것을 할 수있는 몇 가지 방법을 연구하고 내가 SET 문을 사용 해봐야 할 것 같습니다하지만 값을 캡처하는 방법 정말 모르겠어요. 이 예제는 항상 0을 반환합니다.
CREATE PROCEDURE upGetTestIDForAnalyte @WOID nvarchar(60), @SampleID nvarchar(60),@Analyte nvarchar(60), @RecordsAffected int OUT
AS
SELECT @RecordsAffected = (SELECT TestID = t1.TestID
FROM tblWOSampleTest t1
JOIN tblTest t2
ON t1.TestID=t2.TestID;
WHERE @WOID = t1.WOID AND @SampleID = t1.SampleID AND @Analyte = t2.Analyte)
GO
을하지만 그 중 하나가 작동하지 않았다 :
나는 어쩌면이 같은 것이 작동합니다 생각했다. SELECT 문 반환 값을 변수에 저장하는 방법이 있습니까?
각 조건 [@WOID] = t1.WOID 및 [@SampleID] = t1.SampleID에 대해 하나의 testId 만 반환됩니까? [@Analyte] = t2.Analyte? testID 또는 조건과 일치하는 행 수를 찾고 있습니까? – TMNT2014
반환되는 testId는 하나뿐입니다. 나는 그 특정한 testID를 찾고있다. – VictoriaJay