Создайте 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.