我使用 MS-Access 2010 前端,我在其中调用存储过程和 MS-SQl 服务器 2008 后端,在其中我为存储过程应用脚本。我创建了一个存储过程,它检索输入参数与两个连接表中的值匹配的 TestID。我的问题是试图捕获 select 语句使用输出参数返回的内容。这是我的 SQL 存储过程
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 语句,但我真的不知道如何捕捉价值。此示例始终返回零。
我在想也许这样的事情会起作用:
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 语句的返回值存储到变量中?