Sql server 如何从存储过程返回ID数组?

Sql server 如何从存储过程返回ID数组?,sql-server,stored-procedures,Sql Server,Stored Procedures,我有一个存储过程,根据SELECT查询的结果,它应该返回一个id数组。如何在SQL Server中执行此操作 以下是我的存储过程: ALTER PROCEDURE [dbo].[PS_testGar] @CODE_B, @ids OUTPUT AS BEGIN SELECT @ids = code_gar FROM [dbo].[GARANTIE] WHERE CODE_B= @CODE_B END 这里不需要输出参数。这就是您的过程应该是什么样子

我有一个存储过程,根据
SELECT
查询的结果,它应该返回一个id数组。如何在SQL Server中执行此操作

以下是我的存储过程:

ALTER PROCEDURE [dbo].[PS_testGar] 
    @CODE_B,
    @ids OUTPUT
AS 
BEGIN  
   SELECT @ids = code_gar
   FROM  [dbo].[GARANTIE]
   WHERE CODE_B= @CODE_B
END 

这里不需要输出参数。这就是您的过程应该是什么样子

ALTER PROCEDURE [dbo].[PS_testGar] 
(
    @CODE_B int --or whatever your datatype is
) AS  
BEGIN  
    SET NOCOUNT ON;

    SELECT code_gar
    FROM  [dbo].[GARANTIE]
    WHERE CODE_B = @CODE_B
END 

删除“@ids=”命令。SQL Server将以本机方式返回ID列表。你打算用什么语言来调用它?你真的需要一个输出参数吗?如果是这样,您将需要一个用户定义的表类型。更简单的方法是在过程中使用select语句,并将其作为结果集。@Jeremy我将从WCF服务调用它。我删除了“@ids=”,我应该如何声明输出参数?我不会为此使用输出参数。这比需要的要复杂得多。请阅读我发送给您的文档链接。有许多.NET技术可用于从sql server读取数据。如何处理调用此SP的我的wcf服务的结果集?您可以使用ExecuteReader。看看Jeremy在上面评论中发布的链接。它提供了几个例子。