如何从存储过程中调用表值函数

Posted

技术标签:

【中文标题】如何从存储过程中调用表值函数【英文标题】:How call Table Values function from stored procedure 【发布时间】:2013-09-05 12:42:12 【问题描述】:

如何调用存储过程中返回表的函数。

我想在存储过程中使用从函数返回的表。

它是怎么做的?

【问题讨论】:

【参考方案1】:

您的问题并不具体,可以通过不同的方式调用表值函数(取决于需要):

create procedure Test
(
    @someParam varchar(50),
    @someParam2 varchar(50)
)
as
begin
    set nocount on

    ...

    select tf.Col1, tf.Col2, tf.Col3, tf.Col4, tf.Col5
    from tableValuedFunction0() tf

    select tf.Col1, tf.Col2
    from tableValuedFunction1(@someParam) tf

    create table #temp (...)

    insert into #temp (...)
    select tf.Col1, tf.Col2, tf.Col3
    from tableValuedFunction2(@someParam, @someParam2) tf

    create table #temp2 (...)

    insert into #temp2 (...)
    select t.SomeCol, tf.Col1, tf.Col2
    from someTable t
        cross apply tableValuedFunction3(@someParam2, t.SomeOtherCol) tf

    update t
    set t.SomeCol = tf.Value
    from someOtherTable t
        join tableValuedFunction4(@someParam2) tf on tf.SomeOtherCol = t.SomeOtherCol

end

【讨论】:

以上是关于如何从存储过程中调用表值函数的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server:表值函数与存储过程

mysql 存储过程中 查询语句后面的from加上变量名 怎么写

如何将存储过程更改为表值函数?

SQL Server存储过程中使用表值作为输入参数示例

如何从.net代码将表值参数传递给存储过程

使用 PetaPoco 将表值参数传递给存储过程