Stored procedures 具有输出值的存储过程

Stored procedures 具有输出值的存储过程,stored-procedures,Stored Procedures,我需要创建一个存储过程,它将返回多条记录。我想返回AccountID、FirstName、LastName和email 例如,我使用AccountID字段比较两个表。 所以目前我的问题是: 选择AccountID、FirstName、LastName、email 来自TBL客户 AccountID不在哪里 从tblVendors中选择AccountID您可以根据需要在存储过程中选择语句,然后根据您使用的语言,可以循环通过结果集来获取数据 希望有帮助 Josh不确定你的问题是什么…但是你可以用 C

我需要创建一个存储过程,它将返回多条记录。我想返回AccountID、FirstName、LastName和email

例如,我使用AccountID字段比较两个表。 所以目前我的问题是:

选择AccountID、FirstName、LastName、email 来自TBL客户 AccountID不在哪里
从tblVendors中选择AccountID

您可以根据需要在存储过程中选择语句,然后根据您使用的语言,可以循环通过结果集来获取数据

希望有帮助


Josh不确定你的问题是什么…但是你可以用

CREATE PROCEDURE dbo.spGetNonVendors
AS
BEGIN
  Select AccountID, FirstName, LastName, email 
  from tblCustomers Where AccountID not in (select AccountID from tblVendors)
END
有关已创建存储过程的语法,请参见此处:

至于如何获取输出,您应该知道存储过程实际上有三种不同的输出源:

create procedure CompareCustomers
as

select AccountID, FirstName, LastName, email
from tblCustomers
where AccountID not in (select AccountID from tblVendors)
输出参数 结果集 信息 如果您查看我引用的页面上的文档,您将看到如何声明输出变量。这些都是好的单一值,但不是你在这里寻找的

结果集只是在过程中运行的任何select语句。正如您从这里的答案中看到的,没有什么特别的事情要做,只需执行select

最后,消息输出包含错误消息、打印语句等


现在,如何获得select输出取决于您的客户机。您如何连接到sql server并执行该过程?如果您使用的是Sql Management studio,您将看到结果集和消息的两个选项卡。如果您使用的是C,则SqlDataAdapter或SqlDataReader将自动从结果集中读取数据。

因此,只需将其放入一个过程中:

CREATE PROCEDURE Procedurename
AS
BEGIN
    Select AccountID, FirstName, LastName, email
    from tblCustomers
    where AccountID not in (select AccountID from tblVendors)
END
create procedure CompareCustomers
as

select AccountID, FirstName, LastName, email
from tblCustomers
where AccountID not in (select AccountID from tblVendors)
然而,我更喜欢加入,而不是加入:

create procedure CompareCustomers
as

select c.AccountID, c.FirstName, c.LastName, c.email
from tblCustomers c
left join tblVendors v on v.AccountID = c.AccountID
where v.AccountID is null

我不确定你的问题是什么。我的问题是如何编写存储过程。我的印象是SQL存储过程中需要有一个输出参数我刚刚用我认为您需要的信息更新了我的答案。。。