Ответ 1
Вы можете сделать это следующим образом:
DECLARE @statistictemp TABLE (
MajorName VARCHAR(50) NOT NULL,
SubName VARCHAR(50) NOT NULL,
DetailedName VARCHAR(50) NOT NULL,
UniversityID SMALLINT NOT NULL,
StatisticValue DECIMAL(9,3),
PRIMARY KEY (MajorName, SubName, DetailedName, UniversityID)
);
Вы можете проверить, работает ли ограничение первичного ключа, пытаясь вставить дубликаты: например.
INSERT INTO @statistictemp(MajorName, SubName, DetailedName, UniversityID) SELECT 'a','b','c',1
INSERT INTO @statistictemp(MajorName, SubName, DetailedName, UniversityID) SELECT 'a','b','c',1
Второй оператор вызовет ошибку:
Msg 2627, уровень 14, состояние 1, строка 13
Нарушение ограничения PRIMARY KEY "PK_ # 1EA48E8_B595483D208CD6FA". Невозможно вставить дубликат ключа в объект 'dbo. @statistictemp'.
Заявление завершено.