Запрос вопроса пытается вставить строку single , используя значения строк для полей ID и DeptID. Это не удастся с ошибкой во время выполнения.
Можно использовать синтаксис табличного значения для вставки нескольких строк в один оператор INSERT:
INSERT INTO EMPLOYEE
VALUES
(1, 'Asim Asghar', 5),
(2, 'Ahmad', 5),
(1, 'Asim Asghar', 12),
(2, 'Ahmad', 12)
Значения могут быть получены из параметров или переменных.
Использование дублированных идентификаторов и имен в таблице Employee
указывает на проблему. Похоже, что целью является хранение сотрудников и их отделов. Иначе зачем вставлять 4 строки вместо 8 со всеми возможными комбинациями?
Employee
следует изменить на это:
CREATE TABLE [dbo].[EMPLOYEE]
(
[ID] [int] primary key not null,
[EMPLOYEE_NAME] [varchar](50)
)
И еще одну таблицу, EmployeeAssignment
следует добавить
CREATE TABLE [dbo].[EMPLOYEE_ASSIGNMENT]
(
Employee_ID int not null FOREIGN KEY REFERENCES EMPLOYEE(ID),
[DEPARTMENT_ID] [int] not NULL,
PRIMARY KEY (Employee_ID,Department_ID)
)
Данные могут быть вставлены с помощью двух операторов INSERT
:
INSERT INTO EMPLOYEE
VALUES
(1, 'Asim Asghar'),
(2, 'Ahmad'),
INSERT INTO EMPLOYEE_ASSIGNMENT
VALUES
(1, 5),
(2, 5),
(1, 12),
(2, 12)