Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Кто знает по табличным типам и DMV?  [new]
Дед-Папыхтет
Member [заблокирован]

Откуда:
Сообщений: 2808
Делаю для себя скрипт позволяющий скриптовать БД, исключительно для себя в целях самообразования. Застрал на табличных типах. К примеру создал тип:
create type dbo.tvp01 as table
(
	id int identity(1,1) not null primary key,
	dt datetime2(5) null default getdate(),
	d3 varchar(100) null,
	d4 as reverse(d3) collate Cyrillic_General_CI_AI_KS_WS
)

Его можно увидеть в DMV:
select '['+s.name+'].['+tt.name+']' TypeName, tt.user_type_id
from sys.types tt
join sys.schemas s
    on s.schema_id = tt.schema_id
where tt.is_table_type=1
    and tt.name='tvp01'
    and s.name='dbo'

TypeName	user_type_id
[dbo].[tvp01] 264
Далее нужно понять какие колонки у него, в sys.columns есть object_id. В sys.objects по имени его нет совпадений, да и запрос типа select object_id('dbo.tvp01') нал возвращает.
Смотрю в колонках:
select o.name, o.object_id, o.schema_id, o.type_desc
from sys.columns c
join sys.objects o
    on c.object_id = o.object_id
    and o.type='TT'
where c.name='d4'

Контакт есть!!! :
name			object_id	schema_id	type_desc
TT_tvp01_2B3F6F97 725577623 4 TYPE_TABLE

Но блин! Как связать sys.objects с sys.types? по имени фигня полная. Или через другие DMV у табличного типа выходить на столбцы?
17 ноя 16, 12:57    [19903221]     Ответить | Цитировать Сообщить модератору
 Re: Кто знает по табличным типам и DMV?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Дед-Папыхтет,


SELECT *
FROM   
	sys.table_types a
JOIN 
	sys.objects b
ON
	b.object_id = a.type_table_object_id
17 ноя 16, 13:02    [19903259]     Ответить | Цитировать Сообщить модератору
 Re: Кто знает по табличным типам и DMV?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Дед-Папыхтет
Но блин! Как связать sys.objects с sys.types? по имени фигня полная. Или через другие DMV у табличного типа выходить на столбцы?
автор
select user_type_id, type_table_object_id, name
from sys.table_types
17 ноя 16, 13:11    [19903308]     Ответить | Цитировать Сообщить модератору
 Re: Кто знает по табличным типам и DMV?  [new]
Дед-Папыхтет
Member [заблокирован]

Откуда:
Сообщений: 2808
Спасибо за помощь!
17 ноя 16, 13:38    [19903480]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить