我正在用C#开发系统,我必须在2个表中插入记录,并且这些表是相关的。一个表称为Client
,并具有列Cod_Cli
,Nome_Cli
。第二个表是Phone
,其列为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;
}