我正在用C#开发系统,我必须在2个表中插入记录,并且这些表是相关的。一个表称为“客户端”,并具有字段(Cod_Cli,Nome_Cli)。第二个表是“电话”,其中包含字段(Cod_Phone,Num_Phone)。由于一个客户端可能有几个电话号码,我创建了一个关联表,称为Cli_Phone,其中包含字段(Cod_Cli,Cod_Phone)。
因此,当我开发C#程序时,我开始了一个事务,以便可以进行Commit(如果出现问题,则可以回滚)。在表Phone中插入记录后,必须获取该记录的代码才能在表Cli_Phone中插入新记录。
我的问题是:如果我仍未提交结果,如何获取此代码?我不想使用程序。
我正在使用SQL Server 2012。
在ADO.Net中,您可以在插入查询中使用OUTPUT,并在ExecuteScalar中获取ID。
using(SqlCommand cmd=new SqlCommand("INSERT INTO Your_table(column_1) output INSERTED.ID VALUES(@col1)",con))
{
cmd.Parameters.AddWithValue("@col1", "your_data");
con.Open();
int id =(int)cmd.ExecuteScalar();
if (con.State == System.Data.ConnectionState.Open)
con.Close();
return id;
}