Вы можете сделать это следующим образом:
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
Второе выражение будет выбрасыватьошибка:
Сообщение 2627, уровень 14, состояние 1, строка 13
Нарушение ограничения PRIMARY KEY 'PK_ # 1EA48E8 _B595483D208CD6FA'.Невозможно вставить повторяющийся ключ в объект 'dbo. @ Statisticstemp'.
Оператор завершен.