powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Еще один вопрос по поводу пользовательских типов данных
12 сообщений из 12, страница 1 из 1
Еще один вопрос по поводу пользовательских типов данных
    #32057175
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли UDDT использовать в SP или UDF?
я попробовал заменить в SP типы на свои совбственные и в результате получил сообщение при выполнении процедуры.
"Type dtFLOAT is not a defined system type."
...
Рейтинг: 0 / 0
Еще один вопрос по поводу пользовательских типов данных
    #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
Еще один вопрос по поводу пользовательских типов данных
    #32057196
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за совет, учту....
проблема заключалась не в этом.
у меня было явное преобразование типов данных с использованием функций cast / convert. Как написано в BOL'е, с этими функциями нельзя использовать пользовательские типы данных
...
Рейтинг: 0 / 0
Еще один вопрос по поводу пользовательских типов данных
    #32057200
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, с CAST/CONVERT нельзя.
...
Рейтинг: 0 / 0
Еще один вопрос по поводу пользовательских типов данных
    #32057749
ura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользовательские типы данных нельзя использовать
1. В ф-ях Cast, Convert
2. В таблицах-переменных (@Table)
3. Во временных таблицах (#table) - правда, если UDDT добавить в базу tempdb - тогда можно. (а если добавить в базу model тогда при рестарте сервера они всегда будут в tempdb)

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


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