MSSQL表值函数:替换函数定义

时间:2015-11-16 21:31:44

标签: sql-server function

我有一堆查询,我想用另一个逻辑推断的表(通过表值函数)用连接替换现有逻辑

我想编写一个表值函数,它现在使用一些硬编码值作为“存根”,这样当实际函数可用时,我将用实际函数“交换”存根。功能

这是我的存根代码:

create function dbo.stub(@dt date)
returns @ReturnTable table ( colA varchar(50) , colB varchar(50) )
as begin

insert into @ReturnTable (colA,colB) values ("abc", "def")

end;

问题是我不会事先知道真实函数的名称(由其他人给出),所以我需要在所有上述查询中使用“包装器”,以便包装器返回

1)存根直到真实函数已知

2)实现已知的实际功能

注意:可以假设存根和实际函数都具有相同的返回表结构

所以我需要一个逻辑,如:

create function dbo.wrapper( @dt date )

returns dbo.stub(@dt date)

当我使用存根时,然后:

create function dbo.wrapper( @dt date )

returns dbo.realFunc(@dt date)

当真实函数(realFunc)可用时

这个想法是我的所有查询都可以在dbo.wrapper上存储,而不必担心他们是否从存根或实际函数中获取表格

最后2种语法对我不起作用......

根据上面的代码和示例,有人能指出我应该如何定义我的包装器吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

    create function dbo.wrapper( @dt date )
    returns @return_value date
    as begin
    set @return_value = dbo.stub(@dt)
    end