
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.11.2002, 02:17:33
|
|||
|---|---|---|---|
|
|||
Присвоение значения переменной посредством EXEC |
|||
|
#18+
Задача такая. Требуется выбрать максимальное значение столбца таблицы и затем совершить над ним определенное преобразование. Решил использовать процедуру с тем, чтобы название столбца (равно, как и название таблицы - но это уже потом добавлю) можно было передавать. Вопрос: НО КАК ПРИСВОИТЬ значение переменной при использовании EXEC?? Когда прячу @a внутри EXEC - снаружи эта переменная не видна. А когда делаю так, как представлено ниже... то знак равенства тут ни к селу, ни к городу. Какая же должна быть форма записи, подскажите пожалуйста?? CREATE PROCEDURE myNumContract @tablecol varchar(10), @a char(10) output as exec ('select' + @a + '=MAX(' + @tablecol + ') from CLIENT_INFO') return @a GO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2002, 04:19:02
|
|||
|---|---|---|---|
|
|||
Присвоение значения переменной посредством EXEC |
|||
|
#18+
Не ожидал, что окажется все так просто :) Берем sp_executesql и... CREATE PROCEDURE myNumContract @tablecol nvarchar(10), @b nchar(10) output as declare @cmdsql nvarchar(500) set @cmdsql = N'set @b = (select MAX('+@tablecol+') from CLIENT_INFO)' exec sp_executesql @cmdsql, N'@tablecol varchar(10), @b char(10) out', @tablecol = @tablecol, @b = @b out set @b = cast(@b as char) return @b GO Чудо :) Думаю, это предпочтительнее использованию временной таблицы. А? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1818753]: |
0ms |
get settings: |
14ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
90ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 369ms |

| 0 / 0 |
