如何id
从刚刚写入数据库的行中检索一个?
基本上,我的 ASP.NET 中有一个函数需要写入两个表的预订表格,但我需要表 1 中写入的 id 也存储在表 2 中。
所以:
- 写给
table 1
- 检索
id
自table 1
- 写给
table 2
我怎样才能做到这一点?
敬茶
如何id
从刚刚写入数据库的行中检索一个?
基本上,我的 ASP.NET 中有一个函数需要写入两个表的预订表格,但我需要表 1 中写入的 id 也存储在表 2 中。
所以:
table 1
id
自table 1
table 2
我怎样才能做到这一点?
敬茶
如果您使用的是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();
在带有 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();