Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Генератор номеров
|
|||
|---|---|---|---|
|
#18+
Проблема следующая: имеется таблица CREATE TABLE jurn ( counterID int IDENTITY (1, 1) NOT NULL , classID int NOT NULL , number int NOT NULL ... ) Необходимо добавить новую запись с заданным полем classID при этом поле number должно принять значение 1 если поля с таким classID не было и max(number)+1 если было. Другими словами поле number должно быть упорядоченно внутри поля classID и начинаться с 1 для каждого значения classID. Я написал процедуру CREATE PROCEDURE addRecord @classID int AS declare @count int declare @number int begin tran my select @number = max(number), @count = count(*) from jurn with(tablockx) where classID=@classID if @count = 0 select @number = 1 else select @number = @number + 1 insert into jurn(classID,number) values(@classID,@number) if @@ERROR <> 0 begin rollback tran my return 0 end else commit tran Если убрать транзакцию и блокировку массовое добавление с разных станций приведет к дублируемым результатам. С другой стороны блокировать целую таблицу для вставки одной записи не есть гут. Может кто знает другой способ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2002, 07:39 |
|
||
|
Генератор номеров
|
|||
|---|---|---|---|
|
#18+
\nALTER PROCEDURE addRecord @classID int AS INSERT INTO jurn (classID, number) SELECT @classID, ISNULL(MAX(number)+1,1) FROM jurn WHERE classID=@classID + обработка ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2002, 07:57 |
|
||
|
|

start [/forum/search_topic.php?author=H.P.+Baxxter&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
6ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 648ms |
| total: | 784ms |

| 0 / 0 |
