创建一个以 SQL @tables 作为其成员的 UDT

发布于 2024-09-24 19:45:24 字数 424 浏览 8 评论 0原文

我想知道是否可以在 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 (...)

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

I wonder whether it is possible to create a CLR user-defined type in SQL Server 2008 members of which would be table variables.

You know, you can declare a table variable:

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

So I fancy a UDT with several members, each of which is a table defined that way (a different table, of course), so it'd be possible to say:

select id from @typed_var.table1 where ...

or

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

I do have a feeling I want too much on this one, but can't seem to find a definite Yes or No on the Internet.
Is it possible at all?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

霓裳挽歌倾城醉 2024-10-01 19:45:24

不,这是不可能的。 SQL Server 不允许您对 UDT 的属性进行 SELECT 或 INSERT。

我尝试了这个,并收到以下错误:

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.

No, this is not possible. SQL server will not let you SELECT or INSERT into a property of a UDT.

I tried this, and got the error below:

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.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文