基于主表自动运行编号在子表中多重保存数据

时间:2012-02-15 02:35:10

标签: sql sql-server sql-server-2005

我在SQL Server 2005中有2个表

  1. tblEmployee(Emp_No INT,Emp_Name NVARCHAR(50)
  2. tblEducation(Edu_No INT,Edu_Name NVARCHAR(50),Emp_No)
  3. 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 :(得分:0)

如果我理解正确,以下程序将起作用:

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

答案 1 :(得分:0)

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()获取最后一次自动增加号码。