Многократное сохранение данных в подстолбке на основе номера автоматического запуска первичной таблицы - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть 2 таблицы в SQL Server 2005

  1. tblEmployee (Emp_No INT, Emp_Name NVARCHAR (50)
  2. tblEducation (Edu_No INT, Edu_Name NVARCHAR (50), Emp_No)

Поля Emp_No и Edu_No имеют автоматическое увеличение числа.

с отношением 1 ко многим

Я хочу создать хранимую процедуру для сохранения данных обеих таблиц одновременно.Например, введите данные

Emp_No  Emp_Name    
1           Jonh    

Edu_No  Edu_Name    Emp_No
1          IT         1
2       Bussiness     1
3       Marketing     1

Пожалуйста, помогите. Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 февраля 2012
DECLARE @emID  int
INERT INTO tblEmployee(Emp_Name) VALUES('NAME_OF_EM');

@emID   = SCOPE_IDENTITY()

-- INSET Education
INERT INTO tblEducation (Edu_Name, Emp_No) VALUES('IT', emID   );
INERT INTO tblEducation (Edu_Name, Emp_No) VALUES('Bussiness', emID   );

Последнее число автоматического увеличения можно получить с помощью SCOPE_IDENTITY ().

0 голосов
/ 15 февраля 2012

Если я вас правильно понял, сработает следующая процедура:

CREATE PROCEDURE insert_both
AS
BEGIN
  INSERT INTO tblEmployee(Emp_Name) VALUES('John')
  DECLARE @emp_key int
  SET @emp_key = SCOPE_IDENTITY()
   INSERT INTO tblEducation(Edu_Name, Emp_No)  VALUES('IT',@emp_key);
   INSERT INTO tblEducation(Edu_Name, Emp_No)  VALUES('Business',@emp_key);
   INSERT INTO tblEducation(Edu_Name, Emp_No)  VALUES('Marketing',@emp_key);
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...