Nutan R Ответов: 3

Нарушение ограничения уникального ключа


Я разработал таблицу следующим образом :
CREATE TABLE [School](
    [SchoolID] [int] IDENTITY(1,1) NOT NULL,
    [StudentID] [int] NOT NULL,
    [Section] [char](1) NOT NULL,
 CONSTRAINT [PK_Student] PRIMARY KEY NONCLUSTERED
(
    [SchoolID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY],
 CONSTRAINT [CUK_Student] UNIQUE CLUSTERED
(
    [StudentID] ASC,
    [Section] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]</pre>

На вставке значения, Я дает мне ошибку, как
Violation of UNIQUE KEY constraint 'CUK_Student'. Cannot insert duplicate key in object 'School'. The statement has been terminated.

Эта ошибка выше моего понимания. Пожалуйста, помогите мне, как я могу это исправить, а также объясните мне причину этой ошибки, чтобы я мог понять ее причину.

Заранее спасибо,
Nutan Ранее

Sergey Alexandrovich Kryukov

Это довольно очевидно: вы пытались добавить одного и того же ученика в одну и ту же школу, что было предотвращено из-за вашего уникального ограничения. Я бы понял ваше удивление, если бы вы показали свой запрос, который, казалось бы, этого не делает, но это нормальное поведение. Просто посмотрите на свой запрос или добавьте его код к вашему вопросу.

Все еще не ясно?
--СА

3 Ответов

Рейтинг:
20

_Amy

Привет,

В зависимости от вашей ситуации

Нарушение ограничения уникального ключа:

[StudentID],[Section] - это составной первичный ключ, и он должен быть уникальным.
[SchoolID] также должен быть уникальным.


Таким образом, вы пытаетесь вставить значения с одинаковыми ([StudentID], [Section]).

Проверить это. Это всего лишь ошибка в вашем запросе вставки.


--Амит


Рейтинг:
17

Raghunatha_Reddy_S

Вы создали уникальный ключ для столбцов [StudentID],[Section].
например, если вы вставили "1" в столбец Studentid,"section1" в столбец section. Если вы попытаетесь вставить ту же комбинацию значений, вы получите эту ошибку.


Рейтинг:
0

Arul R Ece

Привет...


[SchoolID] - это первичный ключ, поэтому он не допускает дублирования значения.

Итак, произошла ошибка.