2016-11-22 67 views
2

我有一個表「人」使用作爲「PERSON_ID作爲主鍵」列,「DOB」和「地點」,如下所示:如何通過使用sql查詢將值添加到一個表中來在不同的表中插入值?

'Person' 
Person_id |Name|DOB | place 

另一表是「僱員」,其中EMP_ID是主鍵如下:

'employee' 
Person_id |emp_id|dateofjoin 

還有一表「詳細信息」:

'Details' 
emp_id|competency|rating 

現在我想的是,一旦我添加了「人」表詳細列出兩個表as'employe的休息」和‘詳細信息’得到你也關於Person表中添加的新Person的更新。那麼,我怎樣才能使用SQL查詢?另外我想清楚,我不是很熟悉數據庫。

+2

這通常與將插入到所有三個表的存儲過程來完成。 –

+3

作爲PK人名不是最好的想法恕我直言。如果你有兩個人叫「John Smith」呢? – scsimon

+0

@scsimon你是對的,但讓我們忽略這種情況下考慮作爲名稱是不同的。 – Learner

回答

2

我覺得你是這樣的(對於SQL Server)後:

Create Procedure dbo.CreateMyEmployee (@empName varchar(50), 
@dob datetime, 
@doj datetime, 
@place as varchar(100), 
@competency varchar(100), 
@rating int) 
As 
Begin 
    Declare @empId int 
    Begin Transaction 
    Begin Try 
    Insert into Person (Name, DOB, Place) 
    Values (@empName, @dob, @place) 
    Insert into employe (Name, dateofJoin) -- Assuming emp_id is identity columen 
    Values (@empName, @doj) 
    Select @empId = SCOPE_IDENTITY() 
    Insert Into Details(emp_id, competency, rating) 
    Values (@empId, @competency, @rating) 
    Commit transaction 
    End Try 
    Begin Catch 
    Rollback Transaction 
    SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_MESSAGE() AS ErrorMessage 
    End Catch 
End 
相關問題