Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Еще один вопрос по поводу пользовательских типов данных / 12 сообщений из 12, страница 1 из 1
10.10.2002, 16:49:52
    #32057175
AAron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще один вопрос по поводу пользовательских типов данных
Можно ли UDDT использовать в SP или UDF?
я попробовал заменить в SP типы на свои совбственные и в результате получил сообщение при выполнении процедуры.
"Type dtFLOAT is not a defined system type."
...
Рейтинг: 0 / 0
10.10.2002, 17:13:43
    #32057184
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще один вопрос по поводу пользовательских типов данных
Можно, только учтите, что Правила (если они есть и связаны с UDT) не будут работать для переменных типа UDT.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
USE tempdb
GO

EXEC sp_addtype N'testUDT', N'bigint', N'not null'
GO

CREATE PROC dbo.testProc
AS
DECLARE @t testUDT
SET @t =  777 
SELECT @t
GO
EXEC dbo.testProc
GO

CREATE FUNCTION dbo.testFunc()
RETURNS testUDT
AS
BEGIN
DECLARE @t testUDT
SET @t =  777 
RETURN @t
END
GO

EXEC testProc
GO

SELECT dbo.testFunc()
GO
...
Рейтинг: 0 / 0
10.10.2002, 17:23:03
    #32057196
AAron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще один вопрос по поводу пользовательских типов данных
спасибо за совет, учту....
проблема заключалась не в этом.
у меня было явное преобразование типов данных с использованием функций cast / convert. Как написано в BOL'е, с этими функциями нельзя использовать пользовательские типы данных
...
Рейтинг: 0 / 0
10.10.2002, 17:25:43
    #32057200
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще один вопрос по поводу пользовательских типов данных
Да, с CAST/CONVERT нельзя.
...
Рейтинг: 0 / 0
13.10.2002, 14:55:58
    #32057749
ura
ura
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще один вопрос по поводу пользовательских типов данных
Пользовательские типы данных нельзя использовать
1. В ф-ях Cast, Convert
2. В таблицах-переменных (@Table)
3. Во временных таблицах (#table) - правда, если UDDT добавить в базу tempdb - тогда можно. (а если добавить в базу model тогда при рестарте сервера они всегда будут в tempdb)

может и еще где нельзя - так сразу не вспомню...
...
Рейтинг: 0 / 0
14.10.2002, 09:30:54
    #32057809
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще один вопрос по поводу пользовательских типов данных
В одной из книжек по SQL я прочитал, что MS считает пользовательские типы данных в T-SQL анахронизмом, относящемуся к тому периоду, когда бизнес-логика в основном определялась совокупностью UDT, RULEs и триггеров. Ныне анахронизмом считается все, что можно заменить с помощью DRI. Каких-либо существенных преимуществ использование UDT не дает. UDT и RULE продолжают поддерживаться лишь из соображений обратной совместимости. Нет никакой гарантии, что они не ичезнут в последующих версиях.
...
Рейтинг: 0 / 0
14.10.2002, 11:14:08
    #32057856
ura
ura
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще один вопрос по поводу пользовательских типов данных
Если сделать UDDT по-нормальному - тогда это будет отнюдь не анахронизм - можно было бы для замены типа данных не лазить по процедурам, а менять в одном месте. Собственно, для этого UDDT и служат во многих языках программирования.
...
Рейтинг: 0 / 0
14.10.2002, 20:11:39
    #32058178
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще один вопрос по поводу пользовательских типов данных
Во многих языках - согласен. Кроме T-SQL. В нем эта фича не для этого... :)
Не во всех случаях (как в других языках) можно изменять пользовательский тип как захочется, если он уже завязан на какие-либо поля таблиц.
...
Рейтинг: 0 / 0
14.10.2002, 20:13:28
    #32058179
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще один вопрос по поводу пользовательских типов данных
В T-SQL механизм пользовательских типов данных в основном реализован для завязывания с Rulle и c Default. В последних версиях таковая необходимость отпала.
...
Рейтинг: 0 / 0
14.10.2002, 20:29:56
    #32058181
ura
ura
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще один вопрос по поводу пользовательских типов данных
Так я ж и написал, если б сделать по-нормальному - имелось в виду Microsoft - очень бы пригодилось...
...
Рейтинг: 0 / 0
14.10.2002, 21:22:48
    #32058187
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще один вопрос по поводу пользовательских типов данных
Если делать по-нормальному, то нужны не просто пользовательские типы данных, а объявляемые пользователем классы ... :)
...
Рейтинг: 0 / 0
14.10.2002, 21:27:54
    #32058189
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще один вопрос по поводу пользовательских типов данных
Ну, и еще так всякой лабуды по мелочи... Вроде циклов FOR, массивов, функции взятия адреса, битовых сдвигов и т.д. и т.п.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Еще один вопрос по поводу пользовательских типов данных / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]