|
|
|
Присвоение значения переменной посредством 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, 02:17:33 |
|
||
|
Присвоение значения переменной посредством 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 Чудо :) Думаю, это предпочтительнее использованию временной таблицы. А? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2002, 04:19:02 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3376&tid=1818753]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 338ms |

| 0 / 0 |
