T-SQL函数可以返回用户定义的表类型吗?

aba*_*hev 20 t-sql sql-server function user-defined-functions sql-server-2008

我有自己的类型:

CREATE TYPE MyType AS TABLE
(
    foo INT
)
Run Code Online (Sandbox Code Playgroud)

以及接收它作为参数的函数:

CREATE FUNCTION Test
(
    @in MyType READONLY
)
RETURNS @return MyType
AS
...
Run Code Online (Sandbox Code Playgroud)

它可以返回MyType还是只TABLE重复MyType的结构:

CREATE FUNCTION Test
(
    @in MyType READONLY
)
RETURNS @return TABLE (foo INT)
AS
...
Run Code Online (Sandbox Code Playgroud)

mar*_*c_s 15

据我了解Microsoft的MSDN文章,这些用户定义的表类型仅作为存储过程或存储函数的只读参数提供.

它没有提到任何可以用来从用户定义的函数返回的东西,不幸的是 - 所以我猜你是对的 - 这是不可能的(至少现在不行).