Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.06;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.6 MB
Время: 0.049 c
4-1113702410
__blok
2005-04-17 05:46
2005.06.06
Чем читать виндовые шары


6-1108481093
НовичокОК
2005-02-15 18:24
2005.06.06
Как узнать имя пользователя (компа) занявшего ресурс?


1-1116524779
Gear
2005-05-19 21:46
2005.06.06
Шифрование.


3-1114686678
vigo
2005-04-28 15:11
2005.06.06
Вопрос по очистке БД


3-1115092792
hawkins
2005-05-03 07:59
2005.06.06
Как у interbase базы данных определить диалект с которым она созд