powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ключ для строки
3 сообщений из 3, страница 1 из 1
Ключ для строки
    #40026778
Raze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, может подсказать кто, что не так?
Есть кусок вот такого кода:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
DECLARE @nlim varchar(120) =''

select distinct @nlim=SP2.NAIM 
from SP2
where SP2.SPR='_KOMAN' and SP2.KOD_N=@TIP 

if (@nlim<>'')
 begin

delete 
from TTHR
where TTHR.KTHR='_KOMAN' 
    and  TTHR.STRKEY =str( @unzbrd,7,0)
 
insert into TTHR (KTHR,STRKEY,NVAR,K_KTHR,COMM,NAIM2,FIO_D,DATE_D) 
select 'KOMANDA_', str( @unzbrd,7,0), 0, @TIP, @nlim,@nlim,    @fio  as fio_d, @dd as date_d 
                              
end;



При повторном выполнении выдает ошибку Violation of PRIMARY KEY constraint 'PK_TTHR'. Cannot insert duplicate key in object 'dbo.TTHR'. The duplicate key value is (KOMANDA_ , 794, , 0)
Помогите пожалуйста разобраться как поправить это дело...
SP2 - это простой справочник, SPR='_KOMAN' - это название простого справочника и SP2.KOD_N - ключевое поле простого справочника
TTHR - это вспомогательная таблица, в которую попадают занесенные данные, ключ которой TTHR.KTHR='_KOMAN'
unzbrd - это ключ справочника zbrd (справочник состава бригад)
Т.е. допустим для номера 794 какая-либо команда уже установлена, но эту команду хотим поменять и тогда выдает ошибку, заменить почему то не может
...
Рейтинг: 0 / 0
Ключ для строки
    #40026798
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите SELECT что собираетесь удалять. Думаю, сразу будет понятно.
...
Рейтинг: 0 / 0
Ключ для строки
    #40026828
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Raze
Всем привет, может подсказать кто, что не так?
Есть кусок вот такого кода:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
DECLARE @nlim varchar(120) =''

select distinct @nlim=SP2.NAIM 
from SP2
where SP2.SPR='_KOMAN' and SP2.KOD_N=@TIP 

if (@nlim<>'')
 begin

delete 
from TTHR
where TTHR.KTHR='_KOMAN' 
    and  TTHR.STRKEY =str( @unzbrd,7,0)
 
insert into TTHR (KTHR,STRKEY,NVAR,K_KTHR,COMM,NAIM2,FIO_D,DATE_D) 
select 'KOMANDA_', str( @unzbrd,7,0), 0, @TIP, @nlim,@nlim,    @fio  as fio_d, @dd as date_d 
                              
end;



При повторном выполнении выдает ошибку Violation of PRIMARY KEY constraint 'PK_TTHR'. Cannot insert duplicate key in object 'dbo.TTHR'. The duplicate key value is (KOMANDA_ , 794, , 0)
Помогите пожалуйста разобраться как поправить это дело...
SP2 - это простой справочник, SPR='_KOMAN' - это название простого справочника и SP2.KOD_N - ключевое поле простого справочника
TTHR - это вспомогательная таблица, в которую попадают занесенные данные, ключ которой TTHR.KTHR='_KOMAN'
unzbrd - это ключ справочника zbrd (справочник состава бригад)
Т.е. допустим для номера 794 какая-либо команда уже установлена, но эту команду хотим поменять и тогда выдает ошибку, заменить почему то не может


По поводу ключей похоже вас обманули
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ключ для строки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]