这个问题在这里已经有一个答案:

多态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中传递,即使我在返回表类型中定义了完全相同的表定义,它也会丢弃操作数冲突错误。

有帮助吗?

解决方案

我能想到的最好的方法是声明您类型的本地函数的表变量,并在整个代码中使用它。然后进行插入...在返回语句之前先选择参数表。

到目前为止,我避免了用户定义的类型。尽管它们似乎很有希望,并且能够在一个位置更改类型而不是在任何地方更改数据类型,但由于此类问题,它们似乎从未实现生产力和维护。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top