Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Денис Гвоздецкий 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] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
В UDF запрещены динамические запросы |
29 сен 08, 17:37 [6241876] Ответить | Цитировать Сообщить модератору |
pkarklin Member Откуда: Москва (Муром) Сообщений: 74925 |
Создайте вьюху, которая бы UNION ALL все Ваши таблицы документов, и уже из нее нединамическим запросом. |
29 сен 08, 17:44 [6241935] Ответить | Цитировать Сообщить модератору |
Денис Гвоздецкий Member Откуда: Сообщений: 12 |
Если в UDF динамические запросы запрещены, то я могу сделать вместо функции хранимую процедуру - суть не в этом, хотя за подсказку спасибо. Суть в том, как сохранить в переменной результат выполнения этого динамического запроса, выполняемого через execute? |
29 сен 08, 17:58 [6242057] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Об этом написано в FAQ. Если уж вы так любите динамические запросы. |
||
29 сен 08, 18:00 [6242075] Ответить | Цитировать Сообщить модератору |
Денис Гвоздецкий Member Откуда: Сообщений: 12 |
Тема закрыта. Спасибо - все получилось. |
29 сен 08, 20:05 [6242570] Ответить | Цитировать Сообщить модератору |
Между сообщениями интервал более 1 года. |
Максим_78 Member Откуда: Сообщений: 28 |
Денис Гвоздецкий, А поделиться с другими? |
23 янв 19, 09:38 [21791788] Ответить | Цитировать Сообщить модератору |
Сергей Викт. Member Откуда: Москва Сообщений: 888 |
Максим_78, Действительно. Прошло всего 10.5 лет... почему бы и нет) |
23 янв 19, 11:17 [21791912] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |