Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как получить значение??
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Есть sp, которая генерит динамический запрос. В итоге он содержиться в @a+@b+@c. Выполняю его: exec (@a+@b+@c), все нормально. Запрос вида 'select sum(summary) from ...' Как бы получить это значение в переменную @sum? Что-то вроде такого: select @sum= exec (@a+@b+@c)?? Конструкция вида exec @sum=sp_executesql @query не проходит. Ругается на типы text/nchar/...и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2001, 12:21 |
|
||
|
Как получить значение??
|
|||
|---|---|---|---|
|
#18+
declare @sumpays float set @sumpays = 0 print @sumpays exec sp_executesql N'set @mysum = @mysum + 1', N'@mysum float out', @mysum = @sumpays out print @sumpays ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2001, 13:03 |
|
||
|
Как получить значение??
|
|||
|---|---|---|---|
|
#18+
Сделал все в точности - пишет: Server: Msg 137, Level 15, State 1, Line 1 Must declare the variable '@mysum'. ????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 08:49 |
|
||
|
Как получить значение??
|
|||
|---|---|---|---|
|
#18+
Значит не "все в точности" У меня пишет: 0 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 09:07 |
|
||
|
Как получить значение??
|
|||
|---|---|---|---|
|
#18+
В точности - имею ввиду уже адаптированный вариант к своей задаче. В принципе все совпадает за исключением имен переменных и текста самого запроса. В чем же может быть дело?? declare @sum float select @sum=0 exec sp_executesql N'select @mysum=0', N'select @mysum=sum(summary) ..., N'@mysum out', @mysum = @sum out ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 09:14 |
|
||
|
Как получить значение??
|
|||
|---|---|---|---|
|
#18+
declare @sum float select @sum=0 exec sp_executesql N'select @mysum=0 select @mysum=sum(summary) ...,', N'@mysum float out', @mysum = @sum out ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 09:24 |
|
||
|
Как получить значение??
|
|||
|---|---|---|---|
|
#18+
declare @sum float select @sum=0 exec sp_executesql N'select @mysum=0 select @mysum=sum(summary) ...', N'@mysum float out', @mysum = @sum out PS Тип данных для своего примера я выбрал совершенно случайно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 09:26 |
|
||
|
Как получить значение??
|
|||
|---|---|---|---|
|
#18+
Спасибо! С этим разобрался, ошибочка вкралась :о)! А вот так все равно не хочет выполняться (@str - текст запроса) exec sp_executesql N@str, N'@mysum float out', @mysum = @sum out Server: Msg 170, Level 15, State 1, Line 1 Line 1: Incorrect syntax near 'N@str'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 09:31 |
|
||
|
Как получить значение??
|
|||
|---|---|---|---|
|
#18+
Все дело в особенностях sp_executesql - данная процедура принимает либо строковые константы, либо переменные. Так вот N'blah-blah' - это как раз строковая константа, а для переменных ничего впереди не надо подставлять exec sp_executesql @str, N'@mysum float out', @mysum = @sum out а вот код exec sp_executesql 'set @mysum = @mysum + 1', '@mysum float out', @mysum = @sumpays out то же вызовет ошибку "...must be either a Unicode constant or a variable that can be implicitly converted to ntext. More complex Unicode expressions (such as concatenating two strings with the + operator) are not allowed. Character constants are not allowed. If a constant is specified, it must be prefixed with an N. For example, the Unicode constant N'sp_who' is legal, but the character constant 'sp_who' is not. " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 09:38 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1825164]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 368ms |

| 0 / 0 |
