这是我的桌子。
Ticket(id int auto_increment,name varchar(50));
插入此表后,我想将 id 和名称发送到邮件.. 我怎样才能获得最后插入的值。
帮助解决这个...
这是我的桌子。
Ticket(id int auto_increment,name varchar(50));
插入此表后,我想将 id 和名称发送到邮件.. 我怎样才能获得最后插入的值。
帮助解决这个...
SCOPE_IDENTITY()
从该表中具有标识属性的表我们可以获得最后插入的记录 id 将是这样的
SELECT SCOPE_IDENTITY()
或者
但这不是一种安全的技术:
SELECT MAX(Id) FROM Ticket
或者
这也不是一个安全的技术:
SELECT TOP 1 Id FROM Ticket ORDER BY Id DESC
您应该使用SCOPE_IDENTITY()
在您的表上获取最后一个主键插入值。我想这应该是ID
价值。一旦你有了它,SELECT
使用这个 ID 就可以了。
使用其中一种或另一种可能会导致值不准确,但也@@IDENTITY
存在一些差异。
查看这些详细文章以获得更多见解、如何使用它们的详细描述、它们为何不同以及一些演示代码:
对于 2008 R2 Service Pack 1 之前的 SQL Server(链接):
使用 SCOPE_IDENTITY() 和 @@IDENTITY 时,您可能会收到不正确的值
在这种情况下,OUTPUT 子句是最安全的机制:
DECLARE @InsertedRows AS TABLE (Id int)
DECLARE @NewId AS INT
INSERT INTO HumanResources.Employees
( /* column names */)
OUTPUT Inserted.Id INTO @InsertedRows
VALUES (/* column values */)
SELECT @NewId = Id FROM @InsertedRows
在您的表中添加自动增量字段,例如.... index (INT,AUTO INCREEMENT) 然后在插入或完成任何操作之前 c 通过获取 max(index) 来获取您的最后一条记录