【问题标题】:How do I return multiple values from a function and how to invoke the function and assign the values returned to local variables? (T-SQL)如何从函数返回多个值以及如何调用函数并将返回的值分配给局部变量? (T-SQL)
【发布时间】:2014-01-21 00:26:51
【问题描述】:

我是 SQL Server 新手,我想咨询一个问题 假设我有一个返回四个值的函数,例如

set @RetValue=@PendingFlag + @Status + @BTFound + @ValueDateRETURN @RetValue。 现在假设我从另一个函数调用这个函数,比如假设:

DECLARE @d VARCHAR(max)
SET@d=dbo.ValidateBTtype(@BType,@ReadBT,@Type,@Id,@ClientId,@Customerno,@InterestDate,@ApplicationType)

@d 中,我拥有所有四个值 但我想要做的是我想要返回的值,我想将它单独存储在局部变量中,例如局部变量@PendingFlag=returned value (@Pending Flag) local variable @Status=returned value (@Status) 等..

请帮助我如何通过调用第一个函数将返回的值分别存储在第二个函数中

【问题讨论】:

  • 您使用的是 SQL Server 吗? (或 MySQL 之类的)

标签: sql-server tsql


【解决方案1】:

您可以从该函数返回一个表,其中该表有一行和四列,每个返回值一列。

有关表值函数的详细信息,请参阅here

【讨论】:

    【解决方案2】:

    参见here“如何从 sql server 函数返回多个值”。或者 google 'sql server 从函数返回多个值',然后选择。

    干杯-

    【讨论】:

      【解决方案3】:

      这里可能的方法:
      在您的dbo.ValidateBTtype 函数中用逗号分割四个字符串(或值),然后使用逗号作为分隔符将@d 字符串分割成 4 个部分 像这样:
      @RetValue= @PendingFlag + ',' + @Status + ',' + @BTFound + ','+ @ValueDate

      ...或者改为创建表值函数..

      【讨论】:

        【解决方案4】:

        您需要研究 SQL 概念。
        使用 SQlClient 类进行 SQL 查询。
        查看 DataSet 类,它通常用于存储“多个返回值”
        http://www.dotnetperls.com/sqlclient

        【讨论】:

        • 您不能在存储过程中使用数据集,因此这无济于事。那可能就是你被否决的原因。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-09
        • 1970-01-01
        • 2019-06-12
        • 2021-03-04
        • 2023-03-06
        • 1970-01-01
        相关资源
        最近更新 更多