![]() |
|
Модераторы: gambit |
![]()
|
|
| draiv |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 23.5.2007 Репутация: нет Всего: нет |
есть хранимая процедура, в которой следующая часть кода:
Стролбец Text в таблице уникальный. Приложение многопоточное. Эта процедура вызывается без транзакции. Вопрос: при каких обстоятельсвах может возникнуть ошибка: Cannot insert duplicate key row in object 'dbo.Query' with unique index 'IX_Query'. (Ведь в процедуре делается проверка, есть данное значение или нет) |
|||
|
||||
| alexterium |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 3.2.2007 Где: Ростовская обл. г . Таганрог Репутация: нет Всего: нет |
Твоя проверка не проверяет NULL-значения столбца Text
|
|||
|
||||
| draiv |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 23.5.2007 Репутация: нет Всего: нет |
Столбец Text в таблице not null, проверка делается в приложении перед вызовом процедуры.
если null процедура не вызывается. |
|||
|
||||
| LuMee |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 30.3.2007 Репутация: нет Всего: 1 |
Первое, что приходит в голову: один поток успевает воткнуть новую запись с тем же Text после того, как другой поток выполнил проверку, но до того, как он реально внес новую запись. В этом случае во втором потоке будет ошибка. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |