我有一堆查询,我想用另一个逻辑推断的表(通过表值函数)用连接替换现有逻辑
我想编写一个表值函数,它现在使用一些硬编码值作为“存根”,这样当实际函数可用时,我将用实际函数“交换”存根。功能
这是我的存根代码:
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种语法对我不起作用......
根据上面的代码和示例,有人能指出我应该如何定义我的包装器吗?
答案 0 :(得分:0)
试试这个:
create function dbo.wrapper( @dt date )
returns @return_value date
as begin
set @return_value = dbo.stub(@dt)
end