0

如何id从刚刚写入数据库的行中检索一个?

基本上,我的 ASP.NET 中有一个函数需要写入两个表的预订表格,但我需要表 1 中写入的 id 也存储在表 2 中。

所以:

  1. 写给table 1
  2. 检索idtable 1
  3. 写给table 2

我怎样才能做到这一点?

敬茶

4

2 回答 2

0

如果您使用的是SQL Server ,请使用SCOPE_IDENTITY()

http://msdn.microsoft.com/en-us/library/ms190315.aspx

INSERT INTO Table1 ...

DECLARE @RecordID int = SCOPE_IDENTITY()

INSERT INTO Table2 ... VALUES (@RecordID....)

如果不使用存储过程,您可以将SELECT语句附加到 SQL 的末尾:

cmd.CommandText = "INSERT INTO Table 1 ...... ; SELECT SCOPE_IDENTITY()"
int recordId = (int)cmd.ExecuteScalar();
于 2012-11-20T11:19:01.633 回答
0

在带有 Sql 2008 服务器的 Asp.Net 中,您可以像这样使用ExecuteScalar函数:

string query = "INSERT INTO Table1 (id_field) 
                OUTPUT SCOPE_IDENTITY()
                VALUES (...)";

或者

string query = "INSERT INTO Table1 (...) VALUES (...); SELECT SCOPE_IDENTITY() ";

在最后一个示例中,请注意我在同一个请求中执行了一个 INSERT 和一个 SELECT ......

并获得身份使用:

int lastId = (int)command.ExecuteScalar();
于 2012-11-20T11:24:27.830 回答