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

Откуда: Киев
Сообщений: 77
Привет, народ

каких прав не хватает, если я могу создать временную таблицу:
CREATE TABLE #tt1(id INT)
Command(s) completed successfully.

Но не могу создать таблицу, используя пользовательский тип:
CREATE TABLE #tt2(id idtype)
go
--User does not have permission to perform this action.


??

Тип в моей базе создан. еще я добавил его в tempdb и выполнил Grant execute to public.

Комманда "CREATE TABLE dbo.tt2(id idtype)" тоже работает, то есть права на создание таблиц вроде есть.
19 май 14, 14:16    [16036687]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица с UDT  [new]
iap
Member

Откуда: Москва
Сообщений: 47085
ilyaBS,

USE tempdb?
19 май 14, 14:20    [16036707]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица с UDT  [new]
invm
Member

Откуда: Москва
Сообщений: 9724
Grant references to public?
19 май 14, 14:36    [16036860]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица с UDT  [new]
iap
Member

Откуда: Москва
Сообщений: 47085
invm
Grant references to public?
Мне кажется, что объект и UDT должны быть в одной базе,
или я ошибаюсь?
А задать БД в определении типа, кажется, нельзя?

ilyaBS, что такого Вы ожидаете от использования ГВЕ,
Могу дать совет: забудьте Вы об этом!
Кроме пользовательского типа на основе табличной переменной
для её передачи в функцию или процедуру в параметре.
19 май 14, 14:41    [16036918]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица с UDT  [new]
invm
Member

Откуда: Москва
Сообщений: 9724
iap
Мне кажется, что объект и UDT должны быть в одной базе,
Да, должны. Поэтому UDT должен присутствовать в tempdb и на него надо дать references public'у или guest'у. Иначе пользователи без разрешения sysadmin не смогут создавать временные таблицы с этим UDT.
19 май 14, 14:54    [16037047]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица с UDT  [new]
Crimean
Member

Откуда:
Сообщений: 13147
есть альтернативный способ, но не шибко универсальный
создавать # таблички через select into

declare @a MyUDT
select @a as a into #MyTable WHERE 0=1


"цена вопроса" - дальше индексы надо будет явно докидывать через create index
19 май 14, 14:57    [16037062]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица с UDT  [new]
ilyaBS
Member

Откуда: Киев
Сообщений: 77
invm,

спасибо , шас проверю.

беда в том, что БД реализована именно так, но после рестора на дев базе возникла такая проблема.
так что отказаться от юдт, по крайней мере сею секунду, я не могу. но в будущем - уберу.
19 май 14, 16:05    [16037660]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица с UDT  [new]
Crimean
Member

Откуда:
Сообщений: 13147
ilyaBS,

можно задекларировать необходимость наличия UDT в базе "модель" + права на них - уйдет проблема постоянного пропадания из tempdb. но это почти автоматом означает достаточно "выделенное" использование серверов под ваши задачи.
19 май 14, 16:22    [16037856]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить