2012-02-15 53 views
-1

一個子表的基本I具有在SQL Server 2個表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 

請幫忙。謝謝。

+1

好的,那麼你有什麼試過,你有什麼特別的問題? – 2012-02-15 02:51:01

回答

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 
+0

這種情況;如果我爲存儲過程創建參數:Emp_Name和Edu_Name。 在vb.net我將值傳遞給參數,它將只保存一次數據。 Ex Emp_Name =「Jonh」,Edu =「IT」。 如何在vb.net中保存1條記錄到tblEmployee並同時保存多條記錄到tblEducation。 – Sokea 2012-02-15 04:48:15

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得到最後的汽車數量增加()。

+0

這種情況;如果我爲存儲過程創建參數:Emp_Name和Edu_Name。 在vb.net我將值傳遞給參數,它將只保存一次數據。 Ex Emp_Name =「Jonh」,Edu =「IT」。 如何在vb.net中保存1條記錄到tblEmployee並同時保存多條記錄到tblEducation。 – Sokea 2012-02-15 04:48:37