Форум: "Базы";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
ВнизINSERT в MSSQL Найти похожие ветки
← →
Stanislav © (2005-04-29 14:36) [40]А так:
Insert ...
select max(id) from mytable ?
← →
Polevi © (2005-04-29 14:42) [41]>Stanislav © (29.04.05 14:36) [40]
даже не смешно, умолкни
← →
Stanislav © (2005-04-29 14:47) [42]Polevi © (29.04.05 14:42) [41]
Непонял ???
← →
Polevi © (2005-04-29 14:48) [43]я понял что ты не понял
← →
msguns © (2005-04-29 15:01) [44]>Stanislav © (29.04.05 14:47) [42]
>Непонял ???
Всю ветку в лом прочесть ?
← →
Stanislav © (2005-04-29 15:02) [45]Помоему тебе пора замолкнуть, кокого ты вообще в эту ветку встрял и не одного дельного совета человеку.
И кто тебе мастера дал?
← →
Stanislav © (2005-04-29 15:05) [46]msguns © (29.04.05 15:01) [44]
А я ее прочел и что?
← →
ANB © (2005-04-29 15:05) [47]Гы гы. Ща кто то в орешник влетит.
← →
msguns © (2005-04-29 15:23) [48]>Stanislav © (29.04.05 15:05) [46]
>А я ее прочел и что?
А то, что так :>Stanislav © (29.04.05 14:36) [40]
А так:
Insert ...
select max(id) from mytable ?
писать нельзя.
← →
Stanislav © (2005-04-29 15:33) [49]msguns © (29.04.05 15:23) [48]
Я так понимаю человеку нужно узнать ID записи,которая была вставлена командой Insert.
И что неправильно в моем запросе ???
← →
msguns © (2005-04-29 15:39) [50]>Stanislav © (29.04.05 15:33) [49]
>Я так понимаю человеку нужно узнать ID записи,которая была вставлена командой Insert.
Если бы вопрос стоял так, то исчерпывающий ответ дан в [5]. А дальше обсуждалась еще пущенная мною (а зря) идея о получении ID до вставки и даже без. Просто это довольно часто поднимаемая трабла, единого решения которой до сих пор нет, как вариант почитай посты Max Zyuzin ©
← →
ANB © (2005-04-29 15:52) [51]
> идея о получении ID до вставки и даже без.
- у меня есть на идея :))) Переходи на Oracle. Там сиквенсы есть. И никаких проблем.
← →
Stanislav © (2005-04-29 15:53) [52]Ну, вот. А я давал ответ на вопрос поставленный ST см. [38],
как альтернатива [5]. Если это будет выполнятся одной х.п.,то 100% он узнает правильный ID.
А остальное уже отклонение от темы. А появление Polevi в этой ветке вообще глупо.
← →
Max Zyuzin © (2005-04-29 15:58) [53]Ну вы еще подеритесь...
>Stanislav © (29.04.05 15:53) [52]
Конструкция типа [40] не верна упринципе идеологически, ибо MSSQL это вам не однопользовательский парадокс.
← →
Polevi © (2005-04-29 16:03) [54]>Max Zyuzin © (29.04.05 15:58) [53]
г. Stanislav © имеет большой опыт работы с сервером от Microsoft
после >Stanislav © (29.04.05 14:36) [40] рождается миф от msguns "Тяжела как беременная свинья, что в инстале, что в работе"
← →
Stanislav © (2005-04-29 16:06) [55]Также как и [5].
Зачем узнавать значение ID до ?
← →
msguns © (2005-04-29 16:09) [56]>Max Zyuzin © (29.04.05 15:58) [53]
>это вам не однопользовательский парадокс.
Ой ля-ля ?
← →
msguns © (2005-04-29 16:12) [57]>Polevi © (29.04.05 16:03) [54]
>рождается миф от msguns "Тяжела как беременная свинья, что в инстале, что в работе"
Если б миф..
>Stanislav © (29.04.05 16:06) [55]
>Также как и [5].
>Зачем узнавать значение ID до ?
В принципе незачем. Если можно узнать ВМЕСТЕ. Я, к примеру, этого не знал ;(
← →
Max Zyuzin © (2005-04-29 16:12) [58]>msguns © (29.04.05 16:09) [56]
Ой ля ля :). Имелось ввиду вариант работы одним единсвенным пользователем.
← →
Max Zyuzin © (2005-04-29 16:14) [59]>Stanislav © (29.04.05 16:06) [55]
Что бы вставлять например записи в master-detail в одной транзакции.
← →
Stanislav © (2005-04-29 16:21) [60]msguns © (29.04.05 16:12) [57]
Если б миф..
Каждому решению должна быть алтернатива.
И кто сказал что Max(id) будет работать медленее или отнимать больше ресурсов ?
Max Zyuzin © (29.04.05 16:14) [59]
Begin Transaction
--master
Insert...
@NEWID = ...
--detail
insert @newid...
...
...
Commit Transaction / rollback transaction
← →
msguns © (2005-04-29 16:23) [61]>Stanislav © (29.04.05 16:21) [60]
Стас, да идея-то ясна ! Чего уж жевать ?
Думаю, что Макс уж сам сообразит-то ;))
← →
Stanislav © (2005-04-29 16:34) [62]Я все равно не пойму кому нужно узнавать значение AI до...
Ну, допустим ты его узнал, получил и что дальше, а если в этот момент кто-то вставил новую запись в таблицу ?
..ибо MSSQL это вам не однопользовательский парадокс (Max Zyuzin ©
)
← →
ANB © (2005-04-29 16:38) [63]Stanislav © (29.04.05 16:34) [62] - узнавать ID до вставки - общепринятая практика, я сам так в Oracle частенько делаю. Только тогда нужно юзать сиквенсы или использовать способ msguns, если сиквенсы сервер не поддерживает. И в этом случае, если кто то инсертит паралельно запись в нашу таблицу, он получит другой ID. А вот твоя идея с max привет к одному ID или, что еще хуже, ты получишь не свой. Max прокатит, только если ты уверен, что работаешь один.
← →
msguns © (2005-04-29 16:42) [64]>ANB © (29.04.05 16:38) [63]
>Max прокатит, только если ты уверен, что работаешь один.
Ты не понял Стаса. Он сначала вставляет запись, а потом узнает ID. Просто вместо @@identity опрашивает max. Если это в одной транзакции, то рез-т одинаковый.
← →
ANB © (2005-04-29 16:48) [65]И такой же шустрый ?
← →
msguns © (2005-04-29 16:55) [66]Сильно сомневаюсь, хотя черт его знает
Всем спасибо за весьма содержательную беседу. Особый респект ANB © . Жаль, что так и не дождался ответа Полевого.
Пошел праздновать, чего и вам желаю ;))
← →
Stanislav © (2005-04-29 16:57) [67]msguns © (29.04.05 16:42) [64] - Правильно.
ANB © (29.04.05 16:38) [63]
Не хочу морочить тебе голову, но можно пример где может понадоится узнать ID до вставки ?
← →
ANB © (2005-04-29 17:19) [68]Элементарно, Ватсон. Ты выводишь форму для новой накладной. И хочешь, чтобы на ней уже был номер. А его тебе разрешили генерить из ID с дырками, лишь бы был разный.
← →
Fay © (2005-04-29 17:26) [69]Мыши плакали...
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
Память: 0.58 MB
Время: 0.016 c