2013-08-17 37 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