Создайте UDT, который имеет SQL @tables в качестве своих членов

Интересно, возможно ли создать пользовательский тип CLR в SQL Server 2008, членами которого будут переменные таблицы.

Вы можете объявить переменную таблицы:

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

Итак, мне нравится UDT с несколькими членами, каждый из которых представляет собой таблицу, определенную таким образом (конечно, другую таблицу), так что можно было бы сказать:

select id from @typed_var.table1 where ...

или же

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

У меня есть ощущение, что я хочу слишком многого по этому поводу, но не могу найти однозначного Да или Нет в Интернете.
Это вообще возможно?

1 ответ

Нет, это невозможно. SQL-сервер не позволит вам выбрать или вставить свойство 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.
Другие вопросы по тегам