![](/img/trans.png)
[英]How to get the last inserted value for every id in SQL Server 2008?
[英]SQL SERVER 2008 GET LAST INSERTED VALUES
這是我的桌子。
Ticket(id int auto_increment,name varchar(50));
插入此表后,我希望發送id和郵件名稱..如何獲取最后一個Inserted值。
有助於解決這個問題......
請看: Scope_identity
SCOPE_IDENTITY()
從該表中獲取標識屬性的表我們可以得到最后插入的記錄ID將是這樣的
SELECT SCOPE_IDENTITY()
要么
但這不是一種安全的技術:
SELECT MAX(Id) FROM Ticket
要么
這也不是一種安全的技術:
SELECT TOP 1 Id FROM Ticket ORDER BY Id DESC
您應該使用SCOPE_IDENTITY()
來獲取表上的最后一個主鍵插入值。 我想它應該是ID
值。 一旦你擁有它,使用這個ID做一個SELECT
,你有它。
還有@@IDENTITY
但是使用一個或另一個可能導致值不准確的一些差異。
查看這些詳細文章以獲取更多見解,有關如何使用它們的詳細說明,它們的不同之處以及一些演示代碼:
對於2008 R2 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
在你的表中添加auto increement字段,比如.... index(INT,AUTO INCREEMENT)然后在插入或任何操作完成之前c通過獲取max(index)得到你的最后一條記錄
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.