Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Создание своих типов данных


Автор: novichek 21.9.2007, 12:01
Как создовать свои типы данных? Если можно объесните с примером smile 

Автор: Dimani 24.10.2007, 11:35
Общий синтаксис таков:

sp_addtype [ @typename = ] type, 
    [ @phystype = ] system_data_type 
    [ , [ @nulltype = ] 'null_type' ] 
    [ , [ @owner = ] 'owner_name' ]

пример :  
sp_addtype MyType, varchar(50), not null 

такм образом мы создаем тип данных, который определен для конкретно БД, в которой мы его создали. называется он как видно MyType. Значит значения  в тех столбцах, для которых мы установим этот тип данных должны будут соотвествовать критериям типа. т.е. - символьные,  значениями в пределах 50 символов, не допуская отсутствующих значений (NULL). 

в общем же случае тип данных это первое ограничение возможных вариантов значений сущности (строки) в данном столбце. и пользовательские типы просто немного расширяют наши возможности в этом ракурсе smile

Автор: rni 3.3.2008, 11:41
Цитата(Dimani @ 24.10.2007,  14:05)
Общий синтаксис таков:

sp_addtype [ @typename = ] type, 
    [ @phystype = ] system_data_type 
    [ , [ @nulltype = ] 'null_type' ] 
    [ , [ @owner = ] 'owner_name' ]

пример :  
sp_addtype MyType, varchar(50), not null 

такм образом мы создаем тип данных, который определен для конкретно БД, в которой мы его создали. называется он как видно MyType. Значит значения  в тех столбцах, для которых мы установим этот тип данных должны будут соотвествовать критериям типа. т.е. - символьные,  значениями в пределах 50 символов, не допуская отсутствующих значений (NULL). 

в общем же случае тип данных это первое ограничение возможных вариантов значений сущности (строки) в данном столбце. и пользовательские типы просто немного расширяют наши возможности в этом ракурсе smile

Есть ли функция, указывающая тип столбца?

Сам написал запрос для выбора типа столбца будет ли это правильным:
Код

SELECT 
'table_name' tb_name, tb.name column_name,systypes.name typ_name
  FROM dbo.syscolumns tb,dbo.systypes
 WHERE tb.id=object_id(N'table_name') and tb.xtype=systypes.xusertype 
 
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)