4

我想知道是否可以在 SQL Server 2008 中创建一个 CLR 用户定义类型,其成员将是表变量。

你知道,你可以声明一个表变量:

declare @foo table (row_id int not null ... );

所以我喜欢一个有几个成员的 UDT,每个成员都是以这种方式定义的表(当然是不同的表),所以可以说:

select id from @typed_var.table1 where ...

或者

insert into @typed_var.table3(id) values (...)

我确实有一种感觉,我想要太多了,但似乎无法在互联网上找到明确的“是”或“否”。
有可能吗?

4

1 回答 1

1

不,这是不可能的。SQL Server 不会让您 SELECT 或 INSERT 到 UDT 的属性中。

我试过这个,并得到以下错误:

create type childTable as table
(
    a int,
    b int
)

create type childTable2 as table
(
    c int
)

create type parentTable as table
(
    firstChild childTable,
    secondChild childTable2
)

Msg 350, Level 16, State 1, Line 1
The column "firstChild" does not have a valid data type. A column cannot be of a user-defined table type.
于 2011-07-09T01:06:03.587 回答