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

Откуда:
Сообщений: 3
Только начал изучать Sql. Очень хочется использовать что-то типо
автор
SELECT Что-тоТам as Код
, (EXEC MyProc IntПараметр) as Имя
From Откуда-нибудь

Но, как я понял, синтаксис такого сделать не позволяет. Находил примеры, где для использования хранимых процедур в запросе приходилось создавать аналогичные функции. Сам пока не пробовал...но сейчас, наверное, начну. (пример смотрел здесь - https://www.sql.ru/faq/faq_topic.aspx?fid=416). Есть ли способ сделать что-нибудь аналогичное моему коду?
16 окт 12, 10:45    [13324806]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
Glory
Member

Откуда:
Сообщений: 104751
Icy_Wind
Есть ли способ сделать что-нибудь аналогичное моему коду?

Создать функцию.
16 окт 12, 10:46    [13324814]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
Icy_Wind
Member

Откуда:
Сообщений: 3
Забыл добавить: "MyProc" - это уже написанная кем-то процедура (заменить её на функцию нельзя, т.к. процедура уже где-то используется, а создавать пару - процедура+функция, каждая из которых делает аналогичные вещи...как-то глупо. Так что вариант с созданием аналогичной ей функции не будет оптимальным
16 окт 12, 10:57    [13324907]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
Glory
Member

Откуда:
Сообщений: 104751
Icy_Wind
Забыл добавить: "MyProc" - это уже написанная кем-то процедура (заменить её на функцию нельзя, т.к. процедура уже где-то используется, а создавать пару - процедура+функция, каждая из которых делает аналогичные вещи...как-то глупо. Так что вариант с созданием аналогичной ей функции не будет оптимальным

Тогда ваша задача нерешаема.
16 окт 12, 10:58    [13324920]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31823
Icy_Wind
создавать пару - процедура+функция, каждая из которых делает аналогичные вещи...как-то глупо
Поэтому нужно создавать одну функцию, а не пару функция-процедура.
16 окт 12, 10:59    [13324924]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
Icy_Wind
Member

Откуда:
Сообщений: 3
alexeyvg
Icy_Wind
создавать пару - процедура+функция, каждая из которых делает аналогичные вещи...как-то глупо
Поэтому нужно создавать одну функцию, а не пару функция-процедура.

Да, проблема в том, что процедура уже создана и она уже используется где-то - так что заменить её функцией не получится.
А как насчёт создания функции, которая вызывает уже написанную процедуру? Звучит по-лучше. м?
16 окт 12, 11:06    [13325001]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
Glory
Member

Откуда:
Сообщений: 104751
Icy_Wind
А как насчёт создания функции, которая вызывает уже написанную процедуру? Звучит по-лучше. м?

Может сначала поизучать TSQL побольше, чем 1 день ? А не сразу программировать на нем. Тем более в промышленной системе.
16 окт 12, 11:08    [13325019]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
invm
Member

Откуда: Москва
Сообщений: 9687
Icy_Wind
Да, проблема в том, что процедура уже создана и она уже используется где-то - так что заменить её функцией не получится.
А как насчёт создания функции, которая вызывает уже написанную процедуру? Звучит по-лучше. м?
Наоборот -- написать функцию, а в процедуре ее использовать.
16 окт 12, 11:43    [13325309]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Icy_Wind
Да, проблема в том, что процедура уже создана и она уже используется где-то - так что заменить её функцией не получится.
Потому что банально лень.

Ясельная группа №7642
16 окт 12, 13:16    [13326063]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3028
автор
SELECT Что-тоТам as Код
, (EXEC MyProc IntПараметр) as Имя
From Откуда-нибудь


Glory
Icy_Wind
Забыл добавить: "MyProc" - это уже написанная кем-то процедура (заменить её на функцию нельзя, т.к. процедура уже где-то используется, а создавать пару - процедура+функция, каждая из которых делает аналогичные вещи...как-то глупо. Так что вариант с созданием аналогичной ей функции не будет оптимальным

Тогда ваша задача нерешаема.


не ну если IntПараметр - постоянен (т.е не меняется), то можно с извратом, но сделать
16 окт 12, 14:16    [13326701]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
iap
Member

Откуда: Москва
Сообщений: 47065
HandKot
автор
SELECT Что-тоТам as Код
, (EXEC MyProc IntПараметр) as Имя
From Откуда-нибудь


Glory
пропущено...

Тогда ваша задача нерешаема.


не ну если IntПараметр - постоянен (т.е не меняется), то можно с извратом, но сделать
C извратом-то можно и без "если" сделать
16 окт 12, 14:20    [13326739]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3028
iap
HandKot
пропущено...


пропущено...


не ну если IntПараметр - постоянен (т.е не меняется), то можно с извратом, но сделать
C извратом-то можно и без "если" сделать

наксколько я понимаю там уже динамика подключается, а ее я не очень жалую
16 окт 12, 14:28    [13326836]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
iap
Member

Откуда: Москва
Сообщений: 47065
HandKot
iap
пропущено...
C извратом-то можно и без "если" сделать

наксколько я понимаю там уже динамика подключается, а ее я не очень жалую
Да нет...
Но мы же не извращенцы?
16 окт 12, 14:31    [13326868]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3028
iap
HandKot
пропущено...

наксколько я понимаю там уже динамика подключается, а ее я не очень жалую
Да нет...
Но мы же не извращенцы?


а примерчик можно, а то без динамики пока никаких мыслей больше нет
16 окт 12, 14:37    [13326929]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
user89
Member

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

???
How to Share Data between Stored Procedures
16 окт 12, 15:20    [13327312]     Ответить | Цитировать Сообщить модератору
 Re: Execute в Select  [new]
Dmitry_8888
Member

Откуда:
Сообщений: 38
Результаты MyProc грузите в таблицу и работаете с ними как угодно

 
create table #t
	( 	id int  	)
	 

insert into #t
exec MyProc intПараметр

 
SELECT Что-тоТам as Код
, (SELECT  FROM #t условия ) as Имя
From Откуда-нибудь
16 окт 12, 17:52    [13328691]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить