Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Можно написать лучше ?  [new]
Пашок
Member

Откуда:
Сообщений: 287
Всем здравствуйте, можно написать такое действие без использования транзакции ? Т.е. чтобы инкрементировать счетчик, но чтобы во време его инкрементирования никто не успел перехватить значение ?
begin transaction
select @nNextValue  = value from sys_id where param = @cName



if @nNextValue  is not null 
	begin 
		
		set @nNextValue = @nNextValue + 1 
		update sys_id set value = @nNextValue  where param = @cName

	end

commit transaction
13 ноя 09, 22:38    [7928612]     Ответить | Цитировать Сообщить модератору
 Re: Можно написать лучше ?  [new]
ChA
Member

Откуда: Москва
Сообщений: 10989
Пашок
Всем здравствуйте, можно написать такое действие без использования транзакции ? Т.е. чтобы инкрементировать счетчик, но чтобы во време его инкрементирования никто не успел перехватить значение ?
begin transaction
select @nNextValue  = value from sys_id where param = @cName



if @nNextValue  is not null 
	begin 
		
		set @nNextValue = @nNextValue + 1 
		update sys_id set value = @nNextValue  where param = @cName

	end

commit transaction

update sys_id set @nNextValue = value = value + 1  where param = @cName
?
13 ноя 09, 23:41    [7928666]     Ответить | Цитировать Сообщить модератору
 Re: Можно написать лучше ?  [new]
Пашок
Member

Откуда:
Сообщений: 287
класс!
14 ноя 09, 00:02    [7928728]     Ответить | Цитировать Сообщить модератору
 Re: Можно написать лучше ?  [new]
ChA
Member

Откуда: Москва
Сообщений: 10989
Пашок
класс!
Это не класс, это Books Online(BOL). Там ещё много интересного, рекомендую.
14 ноя 09, 00:18    [7928776]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить