![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать значение ключевого автоинкрементного поля после INSERT [D6, MSSQL]
Nikolai_S © (2004-03-29 10:43:00)Как узнать значение ключевого автоинкрементного поля после выполнения SQL-запроса INSERT?
Nikolai_S (2004-03-29 11:32:00) [1]> KSergey
В принципе, ничего сложного конечно нет. Просто мне тогда очень понравился вариант, предложенный sniknik'ом
> bushmen © (29.03.04 11:21) [5]
Спасибо, думаю этого вполне достаточно для решения моей проблемы.
Anatoly Podgoretsky (2004-03-29 11:31:00) [2]Одним запросом для данного типа поля не обойдешься, поскольку оно не существует до окончания запроса. Вариант или два запроса или отказ от типа IDENTITY, генерация его вручную до выполнения запроса.
KSergey (2004-03-29 11:23:00) [3]> [4] Nikolai_S © (29.03.04 11:20)
Можно подумать, что вам предлагают суперсложные решения.
> [2] bushmen © (29.03.04 11:12)
Не забывайте. что это стало доступно только в сервере 2000, ранее - не было.
bushmen (2004-03-29 11:21:00) [4]BOL:
SCOPE_IDENTITY and @@IDENTITY will return last identity values generated in any table in the current session. However, SCOPE_IDENTITY returns values inserted only within the current scope; @@IDENTITY is not limited to a specific scope
Nikolai_S (2004-03-29 11:20:00) [5]Я здесь на форуме уже видел как обсуждалась подобная тема. Предлагались точно такие же варианты. К сожалению, я не запомнил тогда, а сейчас не могу найти это обсуждение на форуме.
Тогда правильный вариант предложил Sniknik. Там как-то очень просто одним запросом все делалось...
bushmen (2004-03-29 11:14:00) [6]Вернее, SCOPE_IDENTITY
bushmen (2004-03-29 11:12:00) [7]Лучше использовать @@scope_identity
Ega23 (2004-03-29 10:47:00) [8]declare @i int
insert into ... values ...
Select @i=@@IDENTITY