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

Откуда:
Сообщений: 19
Всем добрыи день/вечер

У меня есть следущая задача

Две таблицы
#1 Office
OfficeCode OfficeDescr
======== =========
1 Office1
2 Office2
3 Office3

#2 Orders
OrderID OfficeCode
====== ==========
100 1
101 1
102 2
103 3
104 3

Теперь мне надо создать VIEW для каждого офиса, которое будет показывать Заказы определенного Офиса.
например - v_OrdersOffice_1
OrderID OfficeCode
====== ========
100 1
101 1

VIEW надо создать через store procedure,которая будет бежать по таблице OFFICE, проверять если для определенного OfficeCode нету VIEW (e.g. v_OrdersOffice_1) и создавать (CREATE VIEW v_OrdersView_"OficeCode" .....)


Заранее благодарен за любую помощь
17 авг 12, 00:41    [13023975]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
aleks2
Guest
Сделай, родимый, хранимую процедуру, чи функцию с ОДНИМ параметром @OfficeCode.
И не майся фигней.
17 авг 12, 05:57    [13024186]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31964
VovaH
VIEW надо создать через store procedure,которая будет бежать по таблице OFFICE, проверять если для определенного OfficeCode нету VIEW (e.g. v_OrdersOffice_1) и создавать (CREATE VIEW v_OrdersView_"OficeCode" .....)


Заранее благодарен за любую помощь
А что у вас не получается?
17 авг 12, 08:06    [13024296]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
Если я правильно понял вопрос, то разные вью, по одному для каждого офиса, отличающиеся только тем, что в них стоит условие WHERE OfficeCode=... по моему разумению глубоко неправильно.
17 авг 12, 08:33    [13024343]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
А почему не подходит table-valued function?
17 авг 12, 08:36    [13024350]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31964
aleks2, Программист-Любитель,

Ну что вы придираетесь, задание такое - преподаватель хочет, что бы сделали вьюху из процедуры.
17 авг 12, 08:36    [13024351]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
VovaH,
+ тогда что-то в этом духе

declare @t table ( orderid int, office int )
insert  into @t
        ( orderid, office )
values  ( 100, 1 )
 ,      ( 101, 1 )       
 ,      ( 102, 2 )
 ,      ( 103, 3 )
 ,      ( 104, 3 )
declare @str varchar(max)= 'create view ' ;
declare @office_id int
declare @view_name varchar(150)
declare cur_office cursor local static
for
select  distinct
        office
from    @t

open cur_office

fetch next from cur_office into @office_id

while @@FETCH_STATUS = 0 
  begin
    set @view_name = 'vOffice_' + cast(@office_id as varchar(50)) ;


    if not exists ( select  1
                    from    sys.views as v
                    where   v.name = @view_name ) 
      begin
        set @str = @str + @view_name + ' as  select * from @t where office =  ' + cast(@office_id as varchar(50))
        select  @str
        -- махнуть @t на номальную таблицу
        --- exec @str

      end ;
    fetch next from cur_office into @office_id
  end
close cur_office
deallocate cur_office

17 авг 12, 08:49    [13024374]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
denis2710, немного больше занимайтесь проблемой.
TVF - нафиг. Inline (параметризованные вьюхи) наше всё.
Курсор? А чё вы не агрегируете строки через FOR XML. Всё, курсоры в топку при любых обстоятельствах.
И не надо медвежьих услуг.
Наш препод ставил кол, если мы исполняли его идиотские задания.
17 авг 12, 12:31    [13025810]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Mnior,
автор
немного больше занимайтесь проблемой.

Какой проблемой?
автор
Наш препод ставил кол, если мы исполняли его идиотские задания.

Тут из разрядка какой вопрос ,такой ответ.
автор
TVF - нафиг. Inline (параметризованные вьюхи) наше всё.

Вы про Inline TFV ?
автор
А чё вы не агрегируете строки через FOR XML. Всё, курсоры в топку при любых обстоятельствах.

Это чересчур для такой гов-нозадачи.
17 авг 12, 13:27    [13026321]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
denis2710
Какой проблемой?
Вообще, любой.
denis2710
Вы про Inline TVF ?
Ну эээ, да. Т.е. лучше писать точно, а то ани как всегда выберут неверный вариант.

denis2710
автор
А чё вы не агрегируете строки через FOR XML. Всё, курсоры в топку при любых обстоятельствах.
Это чересчур для такой гов-нозадачи.
Чересчурписать проще и меньше и понятнее? Зашибись.
17 авг 12, 18:23    [13028565]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Mnior,
denis2710
Это чересчур для такой гов-нозадачи.

Постановка задачи как бы намекает на то,что препод явно не силен в SQL.Да и студент знаниями не блещет.
И когда студент принесет ему решение с агрегацией строк с помощью xml,по мне,это до хорошего не доведет ... студента ... имхо
автор
Всё, курсоры в топку при любых обстоятельствах.
Далеко не факт,есть задачи,где без них не обойтись.Но использовать курсоры - это последнее средство.
В нормальной работе, конечно же, ни каких курсоров для сложения строк.
Mnior
Чересчурписать проще и меньше и понятнее?

Что б проверить,можете спросите этого студента про xml что-нибудь,что б стало понятно, что этот метод для него проще и понятней.
20 авг 12, 09:24    [13035092]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
Постановка задачи
Guest
denis2710
Постановка задачи как бы намекает на то,что препод явно не силен в SQL.

в чем это выражается, если не секрет?
20 авг 12, 10:04    [13035214]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Постановка задачи,а вы,простите,тот самый преподаватель что ль?
автор
Теперь мне надо создать VIEW для каждого офиса, которое будет показывать Заказы определенного Офиса.

Решается одной inline tvf.
20 авг 12, 10:18    [13035265]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
quot denis2710
Guest
denis2710
Решается одной inline tvf.

задача "создать вью для каждого офиса" решается созданием одной функции?
20 авг 12, 10:21    [13035281]     Ответить | Цитировать Сообщить модератору
 Re: Create View from store procedure  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
quot denis2710,
автор
показывать Заказы определенного Офиса
- задача.
автор
создать VIEW для каждого офиса
-средство.
Или я что-то попутал?
20 авг 12, 10:37    [13035364]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить