1

sql 有一个名为 emp 的表。

emp(emp_id int IDENTITY primary key, EmployeeName varchar(50),.......)

我想在上表中插入一条记录。这是我在 asp.net 中的代码。

DBconnection dbcon = new DBconnection();
string query = "insert into emp values('" + TextBox_EmpName.Text + "','" + ....);
int no1 = dbcon.insertQuery(query);

我有另一个表叫做 emp-relation

 emp-relation(emp_id int primary key, count int, ....) 
     -- foreign key (emp_id)references emp(emp_id)

我的问题是当我插入 emp 行时,我不知道它是什么,emp_id因为它是由 auto 创建的。当我要插入 emp-relation 时,我想得到,emp-id因为它是外键。

我怎样才能做到这一点?有没有办法根据时间戳或其他东西读取Sql中的最后一个插入行?我相信记录本质上不是根据插入的时间戳进行排序的。请帮我。

4

1 回答 1

0

基本上有两种方法。第一种方法是从第一个插入查询中返回新 ID:

insert into emp values(...)
select scope_identity() as NewID

第二种方法是在插入关系表时查找第一行:

insert  emp-relation
        (emp_idm, ...) 
select  emp_id
,       ...
from    emp
where   emp_name = @EmpName

您必须传入足够多的列以使引用唯一。

于 2012-06-04T16:34:03.170 回答