powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вызов хранимой процедуры из Select'a
8 сообщений из 8, страница 1 из 1
Вызов хранимой процедуры из Select'a
    #32063150
Abel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется динамически генерируемый скрипт. Для упрощения возьмем такой:
'select EmployeeID from Employees'. Выполнить скрипт из функции через Exec в принципе невозможно!
Поэтому остается лишь вариант использования хранимой процедуры. Обзовем её SP_Employees.
Внимание, вопрос! Можно ли каким то образом набор строк, возвращаемых этой процедурой,
использовать в Select'е.
По идее, хочется иметь чтонить вроде
select ea.* from EmloyeeAtributes ea join (exec SP_Employees) emp
on ea.EmployeeID=emp.EmployeeID.
Понятное дело это не работает.
В данный момент, один выход вижу: insert #temp exec SP_Employees.
И дальше уже работать с этой временной таблицей.
Есть ли еще варианты?
...
Рейтинг: 0 / 0
Вызов хранимой процедуры из Select'a
    #32063166
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если процедура без параметров, то можно попробовать так

select *
from master..sysxlogins a
inner join openquery( myownserver , 'exec sp_who') b on b.loginame = a.name

В SQL2000 лучше преобразовать процедуру в функцию
...
Рейтинг: 0 / 0
Вызов хранимой процедуры из Select'a
    #32063175
Abel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OpenQuery видимо не подойдет, потому как процедура у меня с параметрами будет. Это я здесь упростил. Кроме того, OpenQuery нужен linked server. Как свой сервер сделать прилинкованым к самому себе?

Процедуру заменить функцией нельзя потому, что нужно из неё вызывать динамически генерируемый скрипт. Execute из функции можно вызывать только для расширеных процедур :(

Тем не менее, спасибо за внимание :)
...
Рейтинг: 0 / 0
Вызов хранимой процедуры из Select'a
    #32063191
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Параметры можно в строку запуска скидывать, самого себя как remote server добавить и сказать еще exec sp_serveroption 'yourserver','data access','true' потом.
...
Рейтинг: 0 / 0
Вызов хранимой процедуры из Select'a
    #32063200
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу UDF (функций): при создании табличной функции необходимо указать набор полей, которые она возвращает. Таким образом, даже через extended stored procedure невозможно будет выдавать результаты динамического Select'а. Поправьте меня, если я заблуждаюсь.
...
Рейтинг: 0 / 0
Вызов хранимой процедуры из Select'a
    #32063201
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пояснение: как Вы понимаете, создавая inline функцию Вы автоматически перечисляете набор возвращаемых полей...
...
Рейтинг: 0 / 0
Вызов хранимой процедуры из Select'a
    #32063213
Abel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 VVG_: мысль с параметрами ясна и ремоут сервер добавлять вроде даже не надо, а вот зачем нужно опцию устанавливать не понял (exec sp_serveroption 'yourserver','data access','true').
Щас опробую, поделюсь результатами. Спасибо!

2 jimmers: я не говорил про UDF. Речь шла о функции СКЛ-сервера (см. create function). С тех пор как с интербейса на MSSQL перешел необходимости в расширенных процедурах не возникало. Было это давно и на текущий момент компетентно прокоментировать возможность использования UDF не могу. За внимание спасибо :)
...
Рейтинг: 0 / 0
Вызов хранимой процедуры из Select'a
    #32063217
Abel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 VVG_: Заработало! Вопрос про опции снимается. Без них действительно OpenQuery не выполнялся. Спасибо еще раз!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вызов хранимой процедуры из Select'a
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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