обработка параллелизма в SQL SERVER 2005 - PullRequest
0 голосов
/ 30 апреля 2010

У меня к вам один вопрос, если вы сможете ответить и сослаться на ресурс, это будет очень полезно.

У меня есть сценарий, в котором мне нужно создать слот для встречи и серийный номер для каждого слота для каждого члена.

например:

Member Id | Слот приложения #

1 | 1

1 | 2

2 | 1

2 | 2

1 | 3

Что я делаю, так это возьму номер максимального слота, увеличивая его и вставляя его для каждого элемента. но проблема в том, что одновременно пользователь может создать слот, когда я беру максимальный слот, после чего, если любой другой пользователь вставит слот, значение, с которым я работаю, больше не подходит, как решить эту проблему

Спасибо и всего наилучшего,

Самир

Ответы [ 2 ]

1 голос
/ 30 апреля 2010

Делайте всю свою работу внутри транзакции. http://msdn.microsoft.com/en-us/library/ms188929.aspx

0 голосов
/ 30 апреля 2010

Вам необходимо сериализовать вызов по этому коду. Вы можете сделать это, установив уровень изоляции этой транзакции в Serializable. см. УСТАНОВИТЬ УРОВЕНЬ ИЗОЛЯЦИИ СДЕЛКИ

Есть побочные эффекты от использования Serializable уровня изоляции, так как это самый ограничительный режим изоляции. Используйте этот уровень изоляции на очень короткое время, чтобы избежать блокировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...