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

Откуда:
Сообщений: 12
Собственно задача состоит в том, чтобы написать функцию, передав в которую нужные параметры на их основе построить динамический запрос и результат выполнения этого запроса вернуть как выходной параметр функции.
И все бы хорошо, если бы не "динамический" запрос.
Вот функция, которая у меня получилась:

create function dbo.DocDateEditBuhGet(@docType varchar(16), @docid varchar(16))
RETURNS datetime
AS BEGIN
declare @SQL varchar(1000);
set @SQL =
'select top 1 DateEditBuh from dbo.documents_DOCH' + @docType + ' ' +
'where recid = ''' + @docID + '''';
exec (@SQL);
-- до этой строки вопросов нет - все чудесно работает. Остается вопрос: как результат выполнения exec передать в выходной параметр функции.
END;
29 сен 08, 17:35    [6241862]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить результат выполнения exec в переменную?  [new]
Glory
Member

Откуда:
Сообщений: 104764
В UDF запрещены динамические запросы
29 сен 08, 17:37    [6241876]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить результат выполнения exec в переменную?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Создайте вьюху, которая бы UNION ALL все Ваши таблицы документов, и уже из нее нединамическим запросом.
29 сен 08, 17:44    [6241935]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить результат выполнения exec в переменную?  [new]
Денис Гвоздецкий
Member

Откуда:
Сообщений: 12
Если в UDF динамические запросы запрещены, то я могу сделать вместо функции хранимую процедуру - суть не в этом, хотя за подсказку спасибо. Суть в том, как сохранить в переменной результат выполнения этого динамического запроса, выполняемого через execute?
29 сен 08, 17:58    [6242057]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить результат выполнения exec в переменную?  [new]
Glory
Member

Откуда:
Сообщений: 104764
Денис Гвоздецкий
Если в UDF динамические запросы запрещены, то я могу сделать вместо функции хранимую процедуру - суть не в этом, хотя за подсказку спасибо. Суть в том, как сохранить в переменной результат выполнения этого динамического запроса, выполняемого через execute?

Об этом написано в FAQ. Если уж вы так любите динамические запросы.
29 сен 08, 18:00    [6242075]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить результат выполнения exec в переменную?  [new]
Денис Гвоздецкий
Member

Откуда:
Сообщений: 12
Тема закрыта. Спасибо - все получилось.
29 сен 08, 20:05    [6242570]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Как сохранить результат выполнения exec в переменную?  [new]
Максим_78
Member

Откуда:
Сообщений: 28
Денис Гвоздецкий,
А поделиться с другими?
23 янв 19, 09:38    [21791788]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить результат выполнения exec в переменную?  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
Максим_78,

Действительно. Прошло всего 10.5 лет... почему бы и нет)
23 янв 19, 11:17    [21791912]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить