如何从我刚刚写入数据库的行中检索id
?
基本上,我在ASP.NET中有一个函数需要写入两个表的预订表单,但是我需要表1中编写的id,也可以存储在表2中。
所以:
table 1
id
table 1
table 2
我怎样才能做到这一点?
此致 茶
答案 0 :(得分: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....)
不使用存储过程,您可以在SQL的末尾附加SELECT
语句:
cmd.CommandText = "INSERT INTO Table 1 ...... ; SELECT SCOPE_IDENTITY()"
int recordId = (int)cmd.ExecuteScalar();
答案 1 :(得分:0)
在带有Sql 2008服务器的Asp.Net中,您可以使用 ExecuteScalar 这样的功能:
string query = "INSERT INTO Table1 (id_field)
OUTPUT SCOPE_IDENTITY()
VALUES (...)";
OR
string query = "INSERT INTO Table1 (...) VALUES (...); SELECT SCOPE_IDENTITY() ";
在最后一个例子中,注意我正在执行INSERT,然后在同一个请求中执行SELECT ...
并获得身份使用:
int lastId = (int)command.ExecuteScalar();