Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
04.09.2014, 16:31
|
|||
---|---|---|---|
|
|||
Проблема с вызовом функции возвращающей табличное значение из хранимой процедуры |
|||
#18+
Здравствуйте. Стоит MS SQL 2008 R2 Есть функция, возвращающая табличное значение Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Эту функцию я вызываю из хранимой процедуры: Код: sql 1. 2. 3. 4. 5. 6.
Сами запросы работают отлично, когда их запускаешь просто в запросе. Когда сделал процедуру и вызываю через нее функцию - запрос вешается. Нашел точную причину, из-за чего запрос зависает: Когда я вызываю функцию из запроса, я передаю ей параметр @ReportDate, перед этим вызывая над ним функцию DATEADD. Код: sql 1.
Если вместо @ReportDate написать например '2014-08-01', функция отлично работает. Когда вместо литерала в функцию подается переменная - все ломается. Помогите пожалуйста исправить ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.09.2014, 16:38
|
|||
---|---|---|---|
|
|||
Проблема с вызовом функции возвращающей табличное значение из хранимой процедуры |
|||
#18+
Поправка. Проблему я решил, объявив еще одну переменную и присваивая ей значение @ReportDate при создании Код: sql 1. 2.
Однако вопрос остается. Почему я не могу передавать в функцию переменную, которую передал в процедуру? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.09.2014, 16:41
|
|||
---|---|---|---|
Проблема с вызовом функции возвращающей табличное значение из хранимой процедуры |
|||
#18+
Bandicoot_NSK, потому что аргументом функции и процедуры не может быть сложное выражение, например, вызов встроенной функции. Только литеральные константы, переменные и поля таблиц (в APPLY). В скалярную функцию можно передать поле и без APPLY. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.09.2014, 16:42
|
|||
---|---|---|---|
Проблема с вызовом функции возвращающей табличное значение из хранимой процедуры |
|||
#18+
Bandicoot_NSK, http://blogs.msdn.com/b/turgays/archive/2013/09/10/parameter-sniffing-problem-and-workarounds.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.09.2014, 16:44
|
|||
---|---|---|---|
Проблема с вызовом функции возвращающей табличное значение из хранимой процедуры |
|||
#18+
Bandicoot_NSKЕсли вместо @ReportDate написать например '2014-08-01', функция отлично работает.А вообще, я тоже кое в чём бывает ошибаюсь... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.09.2014, 07:46
|
|||
---|---|---|---|
|
|||
Проблема с вызовом функции возвращающей табличное значение из хранимой процедуры |
|||
#18+
Shakill, большое спасибо за статью! Очень полезная, я про опции даже и не знал. В такие моменты понимаешь, что теоретической подготовки прям не хватает ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&tablet=1&tid=1700836]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 166ms |
0 / 0 |