Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
ughunter Member Откуда: Владивосток Сообщений: 132 |
Здравствуйте! Помогите разобраться. Есть функция. Весь ее код приводить не буду, ибо он только создает SQL запрос. Загвоздка в том, что при компиляции ALTER FUNCTION [dbo].[SummPoZay] ( @doc_id bigint ) RETURNS numeric(18,2) AS BEGIN ................................ DECLARE @rezult decimal(18,2) DECLARE @ParmDefinition NVARCHAR(500) SET @ParmDefinition = N'@summ decimal(18,2) OUTPUT' insert into @tb exec sp_executesql @sql, @ParmDefinition, @rezult OUTPUT выдается следующее исключение: Сообщение 443, уровень 16, состояние 14, процедура SummPoZay, строка 53 Недопустимое использование оператора "INSERT EXEC", оказывающего побочное действие, в функции. если выполнить все тоже самое просто так (без функции) все окей. результат правильный. |
9 июн 13, 18:13 [14411720] Ответить | Цитировать Сообщить модератору |
Ken@t Member Откуда: 大地 Сообщений: 3264 |
ughunter, Прочитайте каи ограничения на функции. Кстати функци в скуле это не те функции, что в императивных языках. |
9 июн 13, 18:27 [14411755] Ответить | Цитировать Сообщить модератору |
ughunter Member Откуда: Владивосток Сообщений: 132 |
Другой вариант. Компилируется но не выполняетсяDECLARE @rezult decimal(18,2) DECLARE @ParmDefinition NVARCHAR(500) SET @ParmDefinition = N'@rezult decimal(18,2) OUTPUT' --insert into @tb exec sp_executesql @sql, @ParmDefinition, @rezult OUTPUT select [dbo].[SummPoZay](3403) Сообщение 557, уровень 16, состояние 2, строка 1 Внутри функции можно вызывать только функции и некоторые расширенные хранимые процедуры. |
9 июн 13, 19:17 [14411856] Ответить | Цитировать Сообщить модератору |
Ken@t Member Откуда: 大地 Сообщений: 3264 |
ughunter, мы заботимся о слепых |
9 июн 13, 19:24 [14411867] Ответить | Цитировать Сообщить модератору |
ughunter Member Откуда: Владивосток Сообщений: 132 |
невероятно содержательно |
||
9 июн 13, 19:34 [14411887] Ответить | Цитировать Сообщить модератору |
ughunter Member Откуда: Владивосток Сообщений: 132 |
Всегда думал что форум это ответы на конкретные вопросы. А не ссылки на маны и прочее. Я тоже могу писать "спроси гугл" давать куча ссылок и тд. меня то в данном случае интересовало почему так происходит и как это обойти если возможно |
9 июн 13, 19:36 [14411892] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37202 |
|
||
9 июн 13, 19:56 [14411928] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |