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

Откуда:
Сообщений: 4
Понимаю что вопрос звучит как бред поэтому сформулирую по другому:
У меня есть программа , которая обращается к хранимым процедурам SQL и выводит результат в некую таблицу. На таблицу приходиться в среднем больше 10 - 20 процедур.

procedure1
...
Select col1, col2, .... col.n from Table1 where (условие1)
....

procedure2
...
Select col1, col2, .... col.n from Table1 where (условие2)
....

Допустим через некоторое время выяснилось что нужно добавь в таблицу еще одну колонку. Как мне сделать так чтоб не переписывать все процедуры а изменить в одном месте (т.е. чтоб список выбора col1, col2,... col.n хранился в одном месте)
Думаю что как-то можно, а как не знаю
19 ноя 09, 13:21    [7950435]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить список выбора оператора Select для нескольких продцедур одновременно  [new]
Glory
Member

Откуда:
Сообщений: 104760
Нет никакого "одного места". Текст каждой процедуры хранится и выполняется отдельно.
Поэтому придется менять каждую процедуру
19 ноя 09, 13:28    [7950497]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить список выбора оператора Select для нескольких продцедур одновременно  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31173
suragat
Понимаю что вопрос звучит как бред поэтому сформулирую по другому:
У меня есть программа , которая обращается к хранимым процедурам SQL и выводит результат в некую таблицу. На таблицу приходиться в среднем больше 10 - 20 процедур.

procedure1
...
Select col1, col2, .... col.n from Table1 where (условие1)
....

procedure2
...
Select col1, col2, .... col.n from Table1 where (условие2)
Это всё вопросы по структурированию кода; предоставляемые MSSQL для этого возможности не очень богатые :-(

Варианты решения разные, соответственно у них и разные недостатки.

Можно, например, использовать для вывода общую процедуру:
procedure1
... расчёты
exec procedure_for_output параметр=список выбранных записей

procedure2
... расчёты
exec procedure_for_output параметр=список выбранных записей

procedure_for_output
Select col1, col2, .... col.n from Table1 join {список выбранных записей}

Можно структурировать код, собирая в виде динамического SQL:
procedure1
... расчёты
set @sql = fn_Select_clause() + 'условия выборки 1'
exec (@sql)

procedure2
... расчёты
set @sql = fn_Select_clause() + 'условия выборки 2'
exec (@sql)

Можно структурировать код, используя средство разработки с прекомпилятором aka C/C++
procedure1
... расчёты
#include Select_clause

procedure2
... расчёты
#include Select_clause
19 ноя 09, 14:27    [7950980]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить