Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Значение IDENTITY для добавленной записи..
|
|||
|---|---|---|---|
|
#18+
Можно использовать @@identity, но если после вставки записи сработает триггер и будет добавлена запись в другую таблицу с identity, то @@identity будет не верной. Вроде где-то читал, что через OLE DB как-то можно получить значение identity именно для той таблицы, в которую добавляются данные... Ни у кого не возникало такой проблемы? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 08:05 |
|
||
|
Значение IDENTITY для добавленной записи..
|
|||
|---|---|---|---|
|
#18+
Если 2000 то SCOPE_IDENTITY А если 7.0 то я пользую Max(ID) - конечно медленней чем @@identity С уважением, Сергей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 08:24 |
|
||
|
Значение IDENTITY для добавленной записи..
|
|||
|---|---|---|---|
|
#18+
Использую 7.0 Но если кто-то успеет вставить запись до того, как будет вызван Max(ID), то получить ключ добавленной записи не удастся. С уважением, Павел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 09:18 |
|
||
|
Значение IDENTITY для добавленной записи..
|
|||
|---|---|---|---|
|
#18+
Ограничте свою вставку и получение Max(ID) "скобочками" begin tran и commit tran и никто ничего не изменит Сергей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 09:35 |
|
||
|
Значение IDENTITY для добавленной записи..
|
|||
|---|---|---|---|
|
#18+
Да, это конечно, поможет , но max() - не самый эффективный способ.. Просто, где-то мелькала информация, что с помощью какого-то ухищрения с заданием параметров комманды OLE DB можно автоматом получать identity добавленной записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 09:59 |
|
||
|
Значение IDENTITY для добавленной записи..
|
|||
|---|---|---|---|
|
#18+
Можно вообще отказаться от поля identity, в 6. был глюк для полей этого типа если на нем еще и ключ висел (до сервис пака не помню какого это было) и приходилось поддерживать свои счетчики - может Вам поможет такой способ, если совсем плохо. А про OLE DB и такую возможность я ничего не слышал, мне кажется навряд ли это возможно - если не получается на сервере то тем более не получится и на клиенте, все же сервер первичен. С уважением, Сергей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 11:11 |
|
||
|
Значение IDENTITY для добавленной записи..
|
|||
|---|---|---|---|
|
#18+
а почему бы не устанавливать identity в триггере на добавление, ведь пока триггер не выполнился никто не сможет ничего нового добавить т.н. INTERNAL LOCK а там уж как вам больше нравится: хотите через MAX(ID), хотите через @@IDENTITY, а можете еще чего придумать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 14:10 |
|
||
|
Значение IDENTITY для добавленной записи..
|
|||
|---|---|---|---|
|
#18+
2 pavel В триггере прочитайте @@identity в переменную, а потом после вставки записи в другую таблицу выполните такую команду: select @YourIdentity as NewIdentity В результате выполнения вставки (например с помощью процедуры) вы получите на выходе рекордсет со столбцом NewIdentity и одной строчкой со значением этого identity. Max(ID) использовать нельзя, потому что или могут появиться одинаковые значения (если использовать неправильно) или будут тормоза (если использовать правильно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 14:51 |
|
||
|
Значение IDENTITY для добавленной записи..
|
|||
|---|---|---|---|
|
#18+
Т.е. Вы предлагаете в триггере перед обработкой других таблиц (и соответсвенно перед возможным изменением @@identity) сохранить значение @@identity? Спасибо, наверное это сработает. Просто хотелось обойтись обойтись малой кровью - сделать все через OLE DB. Предполагается куча таблиц, в которых было бы удобно использовать identity для ключевых полей... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 15:04 |
|
||
|
Значение IDENTITY для добавленной записи..
|
|||
|---|---|---|---|
|
#18+
2 pavel >сохранить значение @@identity? Надеюсь Вы поняли меня правильно, сохранить в переменную set @NewId = identity insert в другие таблицы select @NewId as NewId ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 15:11 |
|
||
|
Значение IDENTITY для добавленной записи..
|
|||
|---|---|---|---|
|
#18+
IMHO, все же не стит возврашать выборку из тригера, и закладываться на это тоже не желательно, на этапе пректирования да и первичной эксплуатации не всегда известно где будут тригера а где и нет, а если другой разработчик добавит еще тригер...можно запросто получить нерабочую систему. но видимо это решение можно использовать на небольшом количестве таблиц когда оч. важно быстродействие и процедура добавления записи может позволить себе возвращать один рекордсет с новым значением ID для записи. С уважением, Сергей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 16:12 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32023356&tid=1823843]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 371ms |

| 0 / 0 |
