(How To Get Last Inserted ID On SQL Server) - Có nhiều cách để tạo sinh tự động cho 1 bản ghi trong SQL Server, và việc sử dụng ID của bản ghi cuối cùng trong 1 bảng cũng được các lập trình viên sử dụng. Đây là một cách xử lý đơn giản, chỉ cần ghép ID cuối cùng với các thông tin khác là chúng ta đã có một bản mã hoàn chỉnh mà hoàn toàn không lo bị trùng. Và để làm được việc này, yêu cầu khi tạo bảng phải để trường ID là số và thiết lập kiểu auto increment column. Có rất nhiều cách để lấy ID của bản ghi cuối cùng khi thêm mới và dưới đây là các lựa chọn.
- @@IDENTITY: Trả về giá trị Identity cuối cùng được tạo bởi SQL Server của 1 Table trong phiên làm việc hiện tại.
- SCOPE_IDENTITY: cũng trả về giá trị Identity cuối cùng được tạo bởi SQL Server của 1 Table trong phiên làm việc hiện tại.
Vậy đâu là sự khác nhau giữa @@IDENTITY và SCOPE_IDENTITY? Ví dụ bạn thêm 1 bản ghi vào bảng Products và có 1 trigger tự động thêm bản ghi vào bảng ProductHistory, nếu dùng @@IDENTITY, bạn sẽ nhận được giá trị cuối cùng của cột Identity của bảng ProductHistory, còn với SCOPE_IDENTITY nó sẽ trả về giá trị cuối cùng của cột Identity của bảng Products.
- IDENT_CURRENT: Trả về giá trị Identity cuối cùng được tạo bởi SQL Server của 1 Table, khi dùng IDENT_CURRENT ta phải cung cấp tham số là tên Table. Khi sử dụng IDENT_CURRENT nó không phụ thuộc vào session đang kết nối đến SQL Server.
- Sử dụng câu lệnh : SELECT TOP 1 hoặc câu lệnh SELECT MAX
Dưới đây là ví dụ
- B1: Tạo Table Products có cấu trúc
STT | Tên trường | Kiểu trường | Ghi chú |
1 | ProductID | Int | Trường tự tăng |
2 | ProductCode | nvarchar(150) | |
3 | ProductName | nvarchar(250) | |
4 | Description | ntext | |
5 | UnitPrice | money |
- B2: Thực hiện
+ Sử dụng @@IDENTITY
+ Sử dụng SCOPE_IDENTITY
+ Sử dụng IDENT_CURRENT
+ Câu lệnh SELECT TOP 1
+ Câu lệnh SELECT MAX
Trên đây là toàn bộ các cách để lấy ID cuối cùng trong bảng khi thêm mới bản ghi, tùy vào từng trường hợp bạn bạn có thể lựa chọn cách sử dụng cho phù hợp.
Chúc các bạn thành công!
Quang Bình
+ Sử dụng @@IDENTITY
INSERT INTO Products (ProductCode,ProductName, Description, UnitPrice)
VALUES ('PR003', 'Chang', '', 180000)
SELECT @@IDENTITY asLastID+ Sử dụng SCOPE_IDENTITY
INSERT INTO Products (ProductCode,ProductName, Description, UnitPrice)
VALUES ('PR002', 'Chang', '', 180000)
SELECT SCOPE_IDENTITY()as LastID+ Sử dụng IDENT_CURRENT
INSERT INTO Products (ProductCode,ProductName, Description, UnitPrice)
VALUES ('PR003', 'Chang', '', 180000)
SELECT IDENT_CURRENT('Products') as LastID+ Câu lệnh SELECT TOP 1
INSERT INTO Products (ProductCode,ProductName, Description, UnitPrice)
VALUES ('PR003', 'Chang', '', 180000)
SELECT TOP 1 ProductID asLastID FROM Products ORDERBY ProductID DESC+ Câu lệnh SELECT MAX
INSERT INTO Products (ProductCode,ProductName, Description, UnitPrice)
VALUES ('PR003', 'Chang', '', 180000)
SELECT Max(ProductID) as LastID FROM ProductsTrên đây là toàn bộ các cách để lấy ID cuối cùng trong bảng khi thêm mới bản ghi, tùy vào từng trường hợp bạn bạn có thể lựa chọn cách sử dụng cho phù hợp.
Chúc các bạn thành công!
Quang Bình
Lấy Id Bản Ghi Cuối Cùng Khi Thêm Mới Dữ Liệu Trong Sql Server
ReplyDelete-
Lập Trình Đốt Nét >>>>> Download Now
>>>>> Download Full
Lấy Id Bản Ghi Cuối Cùng Khi Thêm Mới Dữ Liệu Trong Sql Server
-
Lập Trình Đốt Nét >>>>> Download LINK
>>>>> Download Now
Lấy Id Bản Ghi Cuối Cùng Khi Thêm Mới Dữ Liệu Trong Sql Server
-
Lập Trình Đốt Nét >>>>> Download Full
>>>>> Download LINK