【问题标题】:Stored Proc that has output values具有输出值的存储过程
【发布时间】:2009-07-08 19:04:34
【问题描述】:

我需要创建一个将返回记录(多条记录)的存储过程。我想返回 AccountID、FirstName、LastName 和电子邮件。

例如,我正在使用 AccountID 字段比较两个表。 所以目前我的查询是:

选择 AccountID、FirstName、LastName、电子邮件 来自 tblCustomers AccountID 不在的地方 (从 tblVendors 中选择 AccountID)

【问题讨论】:

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

标签: stored-procedures


【解决方案1】:

不确定您的问题是什么……但您可以使用

创建该程序
CREATE PROCEDURE dbo.spGetNonVendors
AS
BEGIN
  Select AccountID, FirstName, LastName, email 
  from tblCustomers Where AccountID not in (select AccountID from tblVendors)
END

有关创建的存储过程的语法,请参见此处:

http://msdn.microsoft.com/en-us/library/ms187926.aspx

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

  1. 输出参数
  2. 结果集
  3. 消息

如果您查看我引用的页面上的文档,您将了解如何声明输出变量。这些适用于单一值,但不是您在此处寻找的。​​p>

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

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

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

【讨论】:

    【解决方案2】:

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

    希望有帮助,

    乔什

    【讨论】:

      【解决方案3】:
      CREATE PROCEDURE Procedurename
      AS
      BEGIN
          Select AccountID, FirstName, LastName, email
          from tblCustomers
          where AccountID not in (select AccountID from tblVendors)
      END
      

      【讨论】:

        【解决方案4】:

        所以,把它放在一个过程中:

        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
        

        【讨论】:

          猜你喜欢
          • 2020-06-15
          • 1970-01-01
          • 1970-01-01
          • 2011-02-01
          • 2016-03-24
          • 1970-01-01
          • 1970-01-01
          • 2015-04-28
          • 1970-01-01
          相关资源
          最近更新 更多