powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / @@IDENTITY какой записи?
3 сообщений из 3, страница 1 из 1
@@IDENTITY какой записи?
    #35368472
Юзер222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Adaptive Server Enterprise/12.5.2/EBF 11796/P/Compaq Tru64/OSF1 V5.0A/ase1252/1831/64-bit/FBO/Fri Apr 9 10:52:27 2004

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
...
	INSERT Таблица 
		(valid, ...)
	VALUES ( 1 , ...)

	IF @@ROWCOUNT <  1 
	begin
		...
		goto error
	end
     
	UPDATE Таблица SET valid =  0      
	WHERE	ID <> @@IDENTITY

error:
rollback tran

В инсерте вставляю новую запись со значением поля valid = 1, потом анализирую нормально ли прошла вставка и если все нормально, но все другие записи апдейчу valid = 0, кроме записи с ID <> @@IDENTITY, т.е. кроме той что я только что вставил.
Тестировал - все Ок.
Но в одном из случаев запись нормально добавилась, но оказалась не валидной.
Это могло быть от того что @@IDENTITY содержало ID не той записи что была вставлена по инсерту, а что-то другое?
...
Рейтинг: 0 / 0
@@IDENTITY какой записи?
    #35368607
в чем ошибка здесь точно сказать не могу. но варианты такие:

1. переменые типа @@identity @@error @@rowcount лучше запоминать сразу после операции которая их меняет. типа
Код: plaintext
1.
2.
3.
4.
insert ...

select @err=@@error,@row=@@rowcount,@id=@@identity

if @err<> 0  or @row< 1  ...

2. в данном случае я бы воспользовался возможностями транзакции.
Код: plaintext
1.
2.
3.
4.
5.
6.
begin tran
update ... set valid= 0 

insert into ... values (...)
select @row=@@rowcount
if @row ... goto
commit tran
...
Рейтинг: 0 / 0
@@IDENTITY какой записи?
    #35368674
Юзер222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ясно.
Значит это может быть, что в @@identity может оказаться левое значение, если его брать не сразу...
Спасибо.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / @@IDENTITY какой записи?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]