Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Помогите плз разобраться с блокировками при одновременном запуске нескольких процедур

$
0
0
День добрый!
Интересует такой вопрос...
Есть процедура, которая добавляет строку в таблицу при определенных условиях, соответственно ID для этого условия увеличивается на 1. Код процедуры примерно такой:
BEGIN
	SET NOCOUNT ON;
	SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

	BEGIN TRAN

	DECLARE @n INT

	SET @n = (SELECT max(Id)FROM MayTable) WHERE ...

	INSERT INTO MyTaBle (Id,Col_1)
	SELECT @n,'xyz'

	COMMIT
END


Хотелось бы быть уверенным, что если практически одновременно запускаются две процедуры, то что происходит в строке:
SET @n = (SELECT max(Id)FROM MayTable) WHERE ...

?
Могу ли я быть уверенным, что одна из процедур блокирует чтение из таблицы до тех пор, пока не закончится транзакция, либо нужны какие-то дополнительные подсказки?

Спасибо!

Viewing all articles
Browse latest Browse all 7251

Trending Articles