|
получение ID после Insert
|
|||
---|---|---|---|
#18+
если я в билдере в скрипте делаю INSERT INTO table1(name1, name2) values(value1, value2) в таблицу table1 с инкрементным первичным ключом (MS SQL), можно ли как-то здесь же вернуть в скрипт ID вставленной строки? (Что-то вроде ораклового Returning) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2011, 12:04 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
INSERT INTO table1(name1, name2) values(value1, value2) ; select max(id) into :ll_id from table1; commit; ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2011, 12:23 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
VanoR, нееее. В считанные миллисекунды куча пользователей может навставлять в эту таблицу еще записей. И при отборе максимума я получу совсем не ту строку, которую вставила. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2011, 12:29 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
я специально commit внизу добавил... тобишь обе операции будут производиться в пределах одной транзакции, должно нормально все возвращаться, если таблица блокируется после инсерта для других пользователей. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2011, 12:36 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
Если использвать DataStore, то: Поставьте (выберите из списка) эту колонку в Identity column и уберите из Updateable Column (если она там отмечена). После выполнения метода Update() там появляется значение автоматически. В ASA для колонок с autoincrement-ом это работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2011, 12:42 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
VanoR, нет, не блокируется. Пользователи в банке должны иметь возможность делать все и всегда) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2011, 12:43 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
ЛампочкаVanoR, нет, не блокируется. Пользователи в банке должны иметь возможность делать все и всегда) а вы проверьте :) блокироваться должно, тем более в банке.... одна логическая операция должна выполняться в пределах одной транзакции, с соответствующими блокировками, а то вы так денег точно не досчитаетесь там. ведь то, что я написал не выполняется часами и блокировку другие пользователи и не заметят. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2011, 13:01 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
06.04.2011 13:04, Лампочка пишет: > если я в билдере в скрипте делаю > INSERT INTO table1(name1, name2) values(value1, value2) > в таблицу table1 с инкрементным первичным ключом (MS SQL), > можно ли как-то здесь же вернуть в скрипт ID вставленной строки? select @@identity отменили ;)? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2011, 13:06 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
Dim200006.04.2011 13:04, Лампочка пишет: > если я в билдере в скрипте делаю > INSERT INTO table1(name1, name2) values(value1, value2) > в таблицу table1 с инкрементным первичным ключом (MS SQL), > можно ли как-то здесь же вернуть в скрипт ID вставленной строки? select @@identity отменили ;)? ну да... или так, но опять же в одной транзакции нужно запрашивать (до commit) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2011, 13:09 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
я использую SCOPE_IDENTITY при этом insert выкидываю в хранимую процедуру, там же беру SCOPE_IDENTITY и возвращаю его как выходной параметр вызов тогда становится совсем красивым SQLCA.InsertCard(ll_cardid) в ll_cardid будет искомый айдишник P.S. считаю немного странным использовать max при наличии в MS SQL аж трех для этого стандартных способов SCOPE_IDENTITY, IDENT_CURRENT и @@IDENTITY ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2011, 10:11 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
Спасибо, меня как раз @@identity интересовал! хотя и с помощью Reselectrow тоже пока работает.. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2011, 14:28 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
VanoRINSERT INTO table1(name1, name2) values(value1, value2) ; select max(id) into :ll_id from table1; commit; Скажите а как сделать что бы после получения id сделать опять INSERT, только в другую таблицу, и вставить в эту таблицу полученный id из SELECT? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2014, 21:06 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
paha4444select max(id) into :new_object_id from #__objects; Вообще max(id) это все же не совсем верно, может вернутся не то, несмотря на трансакцию. Лучше использовать функцию SCOPE_IDENTITY(), она возвращает последнее IDENTITY конкретно в вашем коннекте: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2014, 11:31 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
VFlнесмотря на трансакцию Как отличить финансиста от программиста? По тому, говорит ли он трансакция или транзакция ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2014, 13:32 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky, разоблачили :) По образованию действительно экономист. Но в Германии российские экономисты не котируются, пришлось переквалифицироваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2014, 14:34 |
|
получение ID после Insert
|
|||
---|---|---|---|
#18+
VFlpaha4444select max(id) into :new_object_id from #__objects; Вообще max(id) это все же не совсем верно, может вернутся не то, несмотря на трансакцию. Лучше использовать функцию SCOPE_IDENTITY(), она возвращает последнее IDENTITY конкретно в вашем коннекте: Код: sql 1.
Сделал так: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.
LAST_INSERT_ID() ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2014, 11:53 |
|
|
start [/forum/topic.php?fid=15&msg=37208735&tid=1335329]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
167ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 289ms |
0 / 0 |