Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Создание VIEW в хранимой процедуре !!! / 7 сообщений из 7, страница 1 из 1
14.09.2001, 09:43
    #32014066
Gunner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание VIEW в хранимой процедуре !!!
Почему из Анализатора такое проходит, а в хранимой процедуре это описать нельзя ??

IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_NAME = 'problem_answering_device')
DROP VIEW problem_answering_device
GO
CREATE VIEW problem_answering_device (Raion, Ats, Number)
AS
SELECT RaionStat.Raion, AtsStat.Ats, Ats.Number
FROM RaionStat, AtsStat, Ats, DateStat, TimeStat
...
Рейтинг: 0 / 0
14.09.2001, 10:04
    #32014069
Pandre
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание VIEW в хранимой процедуре !!!
GO надо убрать, т.к. этот оператор заканчивает тело хранимой процедуры.
...
Рейтинг: 0 / 0
14.09.2001, 10:12
    #32014071
Gunner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание VIEW в хранимой процедуре !!!
А если убрать GO то компилятор начинает говорить следующее "Incorrect syntax near the keyword VIEW" !! Как быть ?
...
Рейтинг: 0 / 0
14.09.2001, 10:19
    #32014073
Pandre
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание VIEW в хранимой процедуре !!!
В хелпе я не нашел почему это нельзя делать, обойти можно несколькими способами
1. Использовать в хр процедуре запросы без View
2. Скинуть данные во временную таблицу и использовать ее вместо View
3. Создать View до вызова хр процедуры.
...
Рейтинг: 0 / 0
14.09.2001, 10:37
    #32014076
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание VIEW в хранимой процедуре !!!
Topic: stored procedures, programming

Rules for programming stored procedures include:

The CREATE PROCEDURE definition itself can include any number and type of SQL statements except for the following CREATE statements, which cannot be used anywhere within a stored procedure:
CREATE DEFAULT
CREATE TRIGGER
CREATE PROCEDURE
CREATE VIEW
CREATE RULE
...

И честно говоря слабо представляю зачем нужно такое - создавать view из процедуры. Создавать процедуру которая просто создаёт view? Может проще один раз создать его и забыть об этом?
...
Рейтинг: 0 / 0
14.09.2001, 10:51
    #32014078
Pandre
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание VIEW в хранимой процедуре !!!
Да тормознул я по этому поводу, а выход то элементарный

create proc proc1 as
...
exec('create view view1 as ...')
...
drop view view1
GO

А необходимость создания view внутри хп вполне может быть: например ее структура зависит от входных параметров и view затем используется внутри процедуры из многих запросов
...
Рейтинг: 0 / 0
14.09.2001, 12:29
    #32014090
DiMa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание VIEW в хранимой процедуре !!!
По моему можно и временной таблицей обойтись...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Создание VIEW в хранимой процедуре !!! / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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