2013-08-17 66 views
0

下一I與字段兩個表,如下所示: -插入數據在SQL

tbl_emp - > ID(自動生成,自動增加,主鍵),姓名,出生日期 tbl_login - - > id(指tbl_emp中的id,主鍵),密碼

我有一個web表單,它包含名稱,密碼和出生日期(dob)以及提交按鈕。在按提交按鈕時,數據被插入到第一個表格中,並且也被插入到第二個表格中。如果我有辦法從第一個表中訪問「id」字段,那麼將數據插入第二列會很容易。

查詢我的是: -

insert into tbl_emp (name,dob) values(@name, @dob); 
insert into tbl_login (id,password) values((select id from tbl_emp where id=(select id from tbl_emp where id=id)), @password) 

我上述coeds遇到的問題是:

Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. 
The statement has been terminated. 
+0

乾草,如何使用此插入到tbl_login(id,password)值((從tbl_emp中選擇MAX(id),其中name = @ name AND dob = @ dob),@p密碼) –

+0

@Thiha你說的查詢的問題是,可能有(可能是)不同的人可能有相同的名稱和相同的dob。 – user2625672

+0

是的正確。所以,你可能會先使用INSERT然後SELECT(id)然後INSERT。基於MSSQL,在第一次事務完成之前,它將被讀取鎖定或寫入鎖定。 –

回答

0

您可以使用SCOPE_IDENTIY功能:

insert into tbl_emp (name,dob) values(@name, @dob); 

insert into tbl_login (id,password) 
select id, @password 
from tbl_emp 
where id = SCOPE_IDENTITY(); 
+0

讓我試試這個。感謝您在ms中的scope_identity()的鏈接。 – user2625672

+0

比你@ p.s.w.g,這工作。 – user2625672