![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Как присвоить значение MAX (поле) следующей записи через запрос SQL? В общем инкремент
Например: SQL.Add('SELECT MAX(Kod) FROM table'); INSERT INTO Table (Kod) values ( MAX(Kod)+1) Последний раз редактировалось srr, 17.02.2009 в 16:11. |
|
#2
|
|||
|
|||
|
А подзапросом не пробовал?
Код:
INSERT INTO Table(Rjl) values(SELECT MAX(Kod)+1 FROM Table) А вообще, для этих целей сущетсвуют либо автоинкрементные поля, либо генераторы/сиквенсы. |
|
#3
|
|||
|
|||
|
Пробовал в SQL - не работает
|
|
#4
|
|||
|
|||
|
Что не работает?
|
|
#5
|
||||
|
||||
|
lmikle, он прав, в стандарте SQL92 это работать не будет
![]() |
|
#6
|
|||
|
|||
|
Да ладно.
Обычный подзапрос, возвращающий одно значение. в оракле 8,9,10 работает в firebird 1.5 работает в MS SQL 2000 работает. Там ошибка, что в первых скобках должно быть написано Kod. То ли я описался, то ли что сглючило. может придется подзапрос еще раз в скобки поместить, но работать должно. |
|
#7
|
|||
|
|||
|
Всё равно не работает в MS SQL 2000, кроме SELECT и в скобках тоже, м.б. в настройках сервера, но там низя ничего делать.
|