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

Как создать вьюху с именем, ТОЧНО отсутствующим сейчас среди объектов базы, что-то типа tmpView7892499889743978 ?
Во временной области вьюху создавать нельзя (Msg 4103, Level 15, State 1, Line 1
"##tmpView": Temporary views are not allowed.)
Можно ли её создать в неким случайным именем ?
17 июн 09, 19:03    [7312530]     Ответить | Цитировать Сообщить модератору
 Re: как создать вьюху-времянку ?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36805
Зачем?
17 июн 09, 19:05    [7312545]     Ответить | Цитировать Сообщить модератору
 Re: как создать вьюху-времянку ?  [new]
Чайнегъ
Guest
эта вьюха будет такой:
if (not object_id('randView') is null) drop view randView
go
create view randView as select rand() as randView
go
есть "пакетник", в котором вызывается в цикле функция; сама функция, в свою очередь, обращается к вьюхе, чтобы получить рандом-значение. На выходе из цикла вьюха мне не нужна, хочу грохнуть её.
В общем, надо как-то создавать эту "времянку", чтобы она не пересеклась по имени с существующими объектами.
17 июн 09, 19:08    [7312563]     Ответить | Цитировать Сообщить модератору
 Re: как создать вьюху-времянку ?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36805
Чайнегъ
эта вьюха будет такой:
if (not object_id('randView') is null) drop view randView
go
create view randView as select rand() as randView
go
есть "пакетник", в котором вызывается в цикле функция; сама функция, в свою очередь, обращается к вьюхе, чтобы получить рандом-значение. На выходе из цикла вьюха мне не нужна, хочу грохнуть её.
В общем, надо как-то создавать эту "времянку", чтобы она не пересеклась по имени с существующими объектами.
Ну сделайте одну постоянную. Создавать и грохать зачем каждый раз?
17 июн 09, 19:09    [7312568]     Ответить | Цитировать Сообщить модератору
 Re: как создать вьюху-времянку ?  [new]
Чайнегъ
Guest
я этот скрипт должен буду периодически отсылать нескольким людям; откуда я знаю, что у них там в словарях баз есть, какие имена ?
Или в моём случае надо только с извратом делать, типа этого:
create view r286vi7636e82w as ... - ?
17 июн 09, 19:11    [7312578]     Ответить | Цитировать Сообщить модератору
 Re: как создать вьюху-времянку ?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Чайнегъ
я этот скрипт должен буду периодически отсылать нескольким людям; откуда я знаю, что у них там в словарях баз есть, какие имена ?
Или в моём случае надо только с извратом делать, типа этого:
create view r286vi7636e82w as ... - ?
Можно это представление создать в своей специальной схеме.
И права на него всем дать на SELECT
17 июн 09, 19:15    [7312590]     Ответить | Цитировать Сообщить модератору
 Re: как создать вьюху-времянку ?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
А можно с помощью NEWID() имя сгенерировать.
Мало шансов, что такое уже будет существовать
17 июн 09, 19:18    [7312601]     Ответить | Цитировать Сообщить модератору
 Re: как создать вьюху-времянку ?  [new]
Чайнегъ
Guest
iap
Можно это представление создать в своей специальной схеме.
там этого сделать не дадут :-)
в общем, правильно ли я понял, что такую вьюху создать нельзя ?
17 июн 09, 19:19    [7312605]     Ответить | Цитировать Сообщить модератору
 Re: как создать вьюху-времянку ?  [new]
Чайнегъ
Guest
автор
А можно с помощью NEWID() имя сгенерировать.
О! это интересно! а примерчик небольшой в студию можно ?
17 июн 09, 19:20    [7312610]     Ответить | Цитировать Сообщить модератору
 Re: как создать вьюху-времянку ?  [new]
Горилла с Нижнего Тагила
Member

Откуда:
Сообщений: 407
Чайнегъ
О! это интересно! а примерчик небольшой в студию можно ?

Declare @UID Uniqueidentifier
Declare @SQL varchar (8000)
Select  @UID = NEWID()
set @SQL = 'create view [vw'+cast(@UID as varchar(36))+'] as select RAND() as RND'
exec (@SQL)
set @SQL = 'select * from [vw'+cast(@UID as varchar(36))+']'
exec (@SQL)
17 июн 09, 19:56    [7312713]     Ответить | Цитировать Сообщить модератору
 Re: как создать вьюху-времянку ?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Вот только обращаться к такому представлению можно будет только в динамическом запросе,
если? конечно, каждый раз создавать/удалять
17 июн 09, 20:08    [7312749]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить