Здравствуйте Lloyd, Вы писали:
L>Здравствуйте .smoke, Вы писали:
[]
L>Нет. (с)
Это почему? Наоборот! Да'с!
Аргументирую. Если сервер работает в режиме автоматических транзакций, то
MSDN:
individual Transact-SQL statement is committed automatically if it is successful and rolled back automatically if it generates an error.
В таком случае между insert'ом и последующим select'ом может проскочить другая транзакция. Результат будет не верный. Для предотвращения этого необходимо непосредственно указать принадлежность двух инструкций одной транзакции.
При чем, если тупо написать
begin tran
insert into dmd values(1291,4575)
select @@IDENTITY
commit
то это не особо поможет. Так как после insert пользователю (по умолчанию) запрещается только читать данные. Необходимо явно указать вид блокировки.
begin tran
insert into dmd with (tablock) values(1291,4575)
select @@IDENTITY
commit