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

Откуда: г. Екатеринбург
Сообщений: 688
Добрый день.

Есть функция, у которой возвращаемый результат INT:
  [dbo].[test_function]()


Почему-то не получается её использовать напрямую (без объявления переменной) передавая в параметр хранимой процедуры:

  EXECUTE [test_proc] @TestParam = [dbo].[test_function]()


Существуют ограничения?
31 авг 16, 10:30    [19610756]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли использовать результат функции для передачи в переменную хранимой процедуры?  [new]
buven
Member

Откуда:
Сообщений: 792
Игорь_UUS,

А почему не убрать параметр из вызова процедуры, не объявить переменную в самой процедуре и не вызвать функцию уже в самой процедуре, для определения значения параметра?

Раз уж в саму функцию вы ничего не передаете...
31 авг 16, 10:40    [19610823]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли использовать результат функции для передачи в переменную хранимой процедуры?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 688
buven,

потому что процедура имеет общее назначение, а функция играет роль константы
31 авг 16, 10:42    [19610838]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли использовать результат функции для передачи в переменную хранимой процедуры?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32173
Игорь_UUS
Почему-то не получается её использовать напрямую (без объявления переменной) передавая в параметр хранимой процедуры:

  EXECUTE [test_proc] @TestParam = [dbo].[test_function]()

Существуют ограничения?
Да, в хелпе же написано,
@parameter = value | @variable
Далее расшифровка, value - это значение, а @variable - переменная
31 авг 16, 11:07    [19610978]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли использовать результат функции для передачи в переменную хранимой процедуры?  [new]
buven
Member

Откуда:
Сообщений: 792
Игорь_UUS
Существуют ограничения?


Таки да, если почитать про синтаксис EXECUTE


[ { EXEC | EXECUTE } ]
{
[ @return_status = ]
{ module_name | @module_name_var }
[ [ @parameter = ] { value | @variable [ OUTPUT ] | [ DEFAULT ] }]
[ ,...n ]
[ WITH RECOMPILE ]
}
31 авг 16, 11:10    [19611000]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли использовать результат функции для передачи в переменную хранимой процедуры?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 688
Спасибо!
Извиняюсь за свою невнимательность!
31 авг 16, 11:20    [19611066]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить