Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
paradise
1

Вопрос по многопоточности и хранимым процедурам (и триггерам)

12.07.2011, 18:39. Просмотров 1500. Ответов 6
Метки нет (Все метки)

Нужно сделать так:

- Найти максимально значение поля
- Добавить строку, в которой значение поля на один больше максимального

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

Тот же поврос на счет триггеров. Они работают вне контекста транзакций или в нем?

Спасибо.

P.S. Можно просто дать ссылку. Можно на английском.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2011, 18:39
Ответы с готовыми решениями:

по хранимым процедурам
у меня есть разные таблицы: Компьютер, Мышь, Монитор, Клавиатура и Продажа. В каждой таблице есть...

Привязка команд к хранимым процедурам
В табл. "Параметры процедуры Insert" - нет возможности что-то изменить и завершить подключение...

Как передавать параметры хранимым процедурам?
Подскажите плз.... как из VB передать параметры хранимой процедуре в MS SQL SERVER 2000. Очень...

Обращение к хранимым процедурам и функциям из Entity Framework Core
Вот сама БД CREATE DataBase CarLibrary GO USE CarLibrary GO CREATE TABLE Types

6
0 / 0 / 0
Регистрация: 26.05.2011
Сообщений: 6
13.07.2011, 09:51 2
а автоинкремент не подходит?
0
paradise
13.07.2011, 11:53 3
Неа
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 4
13.07.2011, 12:37 4
Как вариант, перед самой записью в таблицу строки с max значением+1 можно еще раз проверить на максимальное значение. Т.о. второй(n-ый) пользователь, получивший такое же макс.значение, пройдет процедуру инкремента еще раз.
0
paradise
13.07.2011, 13:27 5
Shyer, а если два пользователя синхронно проверят и синхронно получат второй раз одно и тоже значение?

Это не выход.
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 4
13.07.2011, 16:23 6
Ну, конечно, не выход. Но. Мы то с вами знаем, что они не смогут получить одинаковый, второй, ответ синхронно. Задержки в десятые доли секунды всяко будут, в силу разных обстоятельств, даже если они одновременно отправят запрос. Но это так, к слову. Это не техническое решение, признаю. Чисто логическое.
0
paradise
13.07.2011, 16:48 7
Твое решение в случае многопоточности изменить вероятность ошибки незначительно. Т.е. можно ничего не делать, считая, что такая ситуация никогда не случиться
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.07.2011, 16:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вопрос по процедурам-функциям?
Задана матрица А(3,4). Удалить в заданной матрице вторую строку. Определить произведение элементов...

вопрос по многопоточности
есть консольное приложение. в главной ф-ции я запускаю кучу потоков через BeginInvoke проблема в...

Соотношение многопоточности приложения c++ и многопоточности на уровне системы?
Возник следующий вопрос: в C++ существует два варианта работы с многопоточностью - std::theard и...

Вопросы по триггерам
Помогите пожалуйста ответить на вопросы : 1) Почему возможно вазаминое превращение триггеров ?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.