Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Violation of PRIMARY KEY constraint ... Cannot insert duplicate  [new]
aydar1992
Member

Откуда:
Сообщений: 155
Ребят, у меня проблема с ключами при одновременной вставки в таблицу, если делать запросы отдельно (4 строки), то все работает что не так?

автор
begin tran -- начало транзакции

DECLARE @ID_MODEL INT,@maxrow int, @val VARCHAR(500)
SELECT @ID_MODEL=120,@val='010203010009 - АИЖК Стандартный'
SELECT @maxrow=MAX(INDEX_ROW) FROM loan_model_addfl_array WHERE ID_OBJECT=@ID_MODEL AND ID_FIELD=30

INSERT INTO loan_model_addfl_array(ID_OBJECT,ID_FIELD,INDEX_ROW,INDEX_COLUMN,FIELD_INT,FIELD_STRING) SELECT @ID_MODEL,30,@maxrow+1,0,NULL,'Счет лимита задолженности'
INSERT INTO loan_model_addfl_array(ID_OBJECT,ID_FIELD,INDEX_ROW,INDEX_COLUMN,FIELD_INT,FIELD_STRING) SELECT @ID_MODEL,30,@maxrow+1,1,NULL,'Код продукта КХД'
INSERT INTO loan_model_addfl_array(ID_OBJECT,ID_FIELD,INDEX_ROW,INDEX_COLUMN,FIELD_INT,FIELD_STRING) SELECT @ID_MODEL,30,@maxrow+1,2,NULL,@val
INSERT INTO loan_model_addfl_array(ID_OBJECT,ID_FIELD,INDEX_ROW,INDEX_COLUMN,FIELD_INT) SELECT @ID_MODEL,30,@maxrow+1,3,0

INSERT INTO loan_model_addfl_array(ID_OBJECT,ID_FIELD,INDEX_ROW,INDEX_COLUMN,FIELD_INT,FIELD_STRING) SELECT @ID_MODEL,30,@maxrow+1,0,NULL,'Счет лимита задолженности'
INSERT INTO loan_model_addfl_array(ID_OBJECT,ID_FIELD,INDEX_ROW,INDEX_COLUMN,FIELD_INT,FIELD_STRING) SELECT @ID_MODEL,30,@maxrow+1,1,NULL,'Код продукта КХД'
INSERT INTO loan_model_addfl_array(ID_OBJECT,ID_FIELD,INDEX_ROW,INDEX_COLUMN,FIELD_INT,FIELD_STRING) SELECT @ID_MODEL,30,@maxrow+1,2,NULL,@val
INSERT INTO loan_model_addfl_array(ID_OBJECT,ID_FIELD,INDEX_ROW,INDEX_COLUMN,FIELD_INT) SELECT @ID_MODEL,30,@maxrow+1,3,0

INSERT INTO loan_model_addfl_array(ID_OBJECT,ID_FIELD,INDEX_ROW,INDEX_COLUMN,FIELD_INT,FIELD_STRING) SELECT @ID_MODEL,30,@maxrow+1,0,NULL,'Счет лимита выдачи'
INSERT INTO loan_model_addfl_array(ID_OBJECT,ID_FIELD,INDEX_ROW,INDEX_COLUMN,FIELD_INT,FIELD_STRING) SELECT @ID_MODEL,30,@maxrow+1,1,NULL,'Код продукта КХД'
INSERT INTO loan_model_addfl_array(ID_OBJECT,ID_FIELD,INDEX_ROW,INDEX_COLUMN,FIELD_INT,FIELD_STRING) SELECT @ID_MODEL,30,@maxrow+1,2,NULL,@val
INSERT INTO loan_model_addfl_array(ID_OBJECT,ID_FIELD,INDEX_ROW,INDEX_COLUMN,FIELD_INT) SELECT @ID_MODEL,30,@maxrow+1,3,0

-- rollback -- откат транзакции
-- commit -- подтверждение тран
12 июл 13, 12:41    [14557193]     Ответить | Цитировать Сообщить модератору
 Re: Violation of PRIMARY KEY constraint ... Cannot insert duplicate  [new]
Glory
Member

Откуда:
Сообщений: 104760
aydar1992
что не так?

То, что разные коннекты получают одно значение
SELECT @maxrow=MAX(INDEX_ROW) FROM loan_model_addfl_array WHERE ID_OBJECT=@ID_MODEL AND ID_FIELD=30
12 июл 13, 12:43    [14557211]     Ответить | Цитировать Сообщить модератору
 Re: Violation of PRIMARY KEY constraint ... Cannot insert duplicate  [new]
aydar1992
Member

Откуда:
Сообщений: 155
aydar1992,

проблема решена, сам ошибся
12 июл 13, 12:43    [14557214]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить