SQL Server 2008:多态UDF可以返回UDT吗? [复制
题
这个问题在这里已经有一个答案:
多态UDF是否有可能返回用户定义的表类型,而不是在其返回param中定义的表?
因此,而不是:
CREATE FUNCTION MyFunc
(
@p1 int, @p2 char
)
RETURNS
@SomeVar TABLE
(
c1 int
)
AS
我想要做:
CREATE FUNCTION MyFunc
(
@p1 int, @p2 char
)
RETURNS
@SomeVar MyTableType
AS
原因是在我的功能内部,我调用其他函数,并且必须在mytabletype UDT中传递,即使我在返回表类型中定义了完全相同的表定义,它也会丢弃操作数冲突错误。
解决方案
我能想到的最好的方法是声明您类型的本地函数的表变量,并在整个代码中使用它。然后进行插入...在返回语句之前先选择参数表。
到目前为止,我避免了用户定义的类型。尽管它们似乎很有希望,并且能够在一个位置更改类型而不是在任何地方更改数据类型,但由于此类问题,它们似乎从未实现生产力和维护。
不隶属于 StackOverflow