@@ IDENTITY (Transact-SQL)
Bạn đang xem: chèn sql lấy lại id
@@ IDENTITY (Transact-SQL)
Trong bài viết này
Áp dụng cho: SQL Server (tất cả các phiên bản được hỗ trợ) Azure SQL Database Azure SQL Managed Instance
Là một hàm hệ thống trả về giá trị nhận dạng được chèn lần cuối.
Quy ước về cú pháp Transact-SQL
Cú pháp
@@ IDENTITY
Lưu ý
Để xem cú pháp Transact-SQL cho SQL Server 2014 trở về trước, hãy xem Tài liệu về các phiên bản trước .
Loại trả lại
số (38,0)
Nhận xét
Sau khi hoàn thành câu lệnh INSERT, SELECT INTO hoặc sao chép hàng loạt, @@ IDENTITY chứa giá trị nhận dạng cuối cùng được tạo bởi câu lệnh. Nếu câu lệnh không ảnh hưởng đến bất kỳ bảng nào có cột nhận dạng, @@ IDENTITY trả về NULL. Nếu nhiều hàng được chèn, tạo ra nhiều giá trị nhận dạng, @@ IDENTITY trả về giá trị nhận dạng cuối cùng được tạo. Nếu câu lệnh kích hoạt một hoặc nhiều trình kích hoạt thực hiện chèn tạo ra giá trị nhận dạng, gọi @@ IDENTITY ngay sau khi câu lệnh trả về giá trị nhận dạng cuối cùng được tạo bởi trình kích hoạt. Nếu trình kích hoạt được kích hoạt sau hành động chèn trên bảng có cột nhận dạng và trình kích hoạt chèn vào bảng khác không có cột nhận dạng, @@ IDENTITY trả về giá trị nhận dạng của lần chèn đầu tiên. Giá trị @@ IDENTITY không hoàn nguyên về cài đặt trước đó nếu câu lệnh INSERT hoặc SELECT INTO hoặc sao chép hàng loạt không thành công hoặc nếu giao dịch được khôi phục.
Các câu lệnh và giao dịch không thành công có thể thay đổi danh tính hiện tại cho một bảng và tạo ra khoảng trống trong các giá trị cột nhận dạng. Giá trị nhận dạng không bao giờ được khôi phục lại mặc dù giao dịch đã cố gắng chèn giá trị vào bảng không được cam kết. Ví dụ: nếu câu lệnh INSERT không thành công do vi phạm IGNORE_DUP_KEY, giá trị nhận dạng hiện tại cho bảng vẫn được tăng lên.
@@ IDENTITY, SCOPE_IDENTITY và IDENT_CURRENT là các hàm tương tự vì chúng đều trả về giá trị cuối cùng được chèn vào cột IDENTITY của bảng.
@@ IDENTITY và SCOPE_IDENTITY trả về giá trị nhận dạng cuối cùng được tạo trong bất kỳ bảng nào trong phiên hiện tại. Tuy nhiên, SCOPE_IDENTITY chỉ trả về giá trị trong phạm vi hiện tại; @@ IDENTITY không giới hạn trong một phạm vi cụ thể.
IDENT_CURRENT không bị giới hạn bởi phạm vi và phiên; nó được giới hạn trong một bảng được chỉ định. IDENT_CURRENT trả về giá trị nhận dạng được tạo cho một bảng cụ thể trong bất kỳ phiên nào và bất kỳ phạm vi nào. Để biết thêm thông tin, hãy xem IDENT_CURRENT (Transact-SQL) .
Phạm vi của hàm @@ IDENTITY là phiên hiện tại trên máy chủ cục bộ mà nó được thực thi. Không thể áp dụng chức năng này cho các máy chủ từ xa hoặc được liên kết. Để có được giá trị nhận dạng trên một máy chủ khác, hãy thực thi một thủ tục được lưu trữ trên máy chủ từ xa hoặc được liên kết đó và để thủ tục được lưu trữ đó (đang thực thi trong ngữ cảnh của máy chủ từ xa hoặc được liên kết) thu thập giá trị nhận dạng và trả về kết nối đang gọi trên máy chủ cục bộ.
Việc sao chép có thể ảnh hưởng đến giá trị @@ IDENTITY, vì nó được sử dụng trong các trình kích hoạt sao chép và quy trình được lưu trữ. @@ IDENTITY không phải là chỉ báo đáng tin cậy về danh tính do người dùng tạo gần đây nhất nếu cột này là một phần của bài viết nhân rộng. Bạn có thể sử dụng cú pháp hàm SCOPE_IDENTITY () thay vì @@ IDENTITY. Để biết thêm thông tin, hãy xem SCOPE_IDENTITY (Transact-SQL)
Lưu ý
Thủ tục gọi được lưu trữ hoặc câu lệnh Transact-SQL phải được viết lại để sử dụng hàm SCOPE_IDENTITY ()
, hàm này trả về danh tính mới nhất được sử dụng trong phạm vi của câu lệnh người dùng đó, chứ không phải là danh tính trong phạm vi của trình kích hoạt lồng nhau được sử dụng bởi sao chép.
Ví dụ
Ví dụ sau đây chèn một hàng vào bảng có cột nhận dạng ( LocationID
) và sử dụng @@ IDENTITY
để hiển thị giá trị nhận dạng được sử dụng trong hàng mới. < / p>
SỬ DỤNG AdventureWorks2012;
ĐI
--Hiển thị giá trị của LocationID ở hàng cuối cùng trong bảng.
CHỌN TỐI ĐA (ID vị trí) TỪ Production.Location;
ĐI
CHÈN VÀO Sản xuất. Vị trí (Tên, Tỷ lệ chi phí, Tính khả dụng, Ngày sửa đổi)
VALUES ('Hàng hóa bị hư hỏng', 5, 2,5, GETDATE ());
ĐI
CHỌN @@ IDENTITY AS 'Identity';
ĐI
--Hiển thị giá trị LocationID của hàng mới được chèn.
CHỌN TỐI ĐA (ID vị trí) TỪ Production.Location;
ĐI
Xem thêm
Chức năng Hệ thống (Giao dịch-SQL)
TẠO BẢNG (Transact-SQL)
IDENT_CURRENT (Transact-SQL)
CHÈN (Giao dịch-SQL)
SCOPE_IDENTITY (Giao dịch-SQL)
CHỌN (Giao dịch-SQL)
Xem thêm những thông tin liên quan đến chủ đề chèn sql lấy lại id
Identity Column in SQL Server – Part 7
- Tác giả: kudvenkat
- Ngày đăng: 2012-08-11
- Đánh giá: 4 ⭐ ( 2207 lượt đánh giá )
- Khớp với kết quả tìm kiếm: In this video we will learn
1. What is Identity column
2. Creating an Identity column
3. Supply explicit values for identity columns using IDENTITY_INSERT
4. Reset identity value using DBCC CHECKIDENT commandText version of the video
http://csharp-video-tutorials.blogspot.com/2012/08/identity-column-in-sql-server-part-7.htmlHealthy diet is very important both for the body and mind. If you like Aarvi Kitchen recipes, please support by sharing, subscribing and liking our YouTube channel. Hope you can help.
https://www.youtube.com/channel/UC7sEwIXM_YfAMyonQCrGfWA/?sub_confirmation=1Slides
http://csharp-video-tutorials.blogspot.com/2013/08/part-7-identity-column.htmlAll SQL Server Text Articles
http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.htmlAll SQL Server Slides
http://csharp-video-tutorials.blogspot.com/p/sql-server.htmlAll Dot Net and SQL Server Tutorials in English
https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=ddAll Dot Net and SQL Server Tutorials in Arabic
https://www.youtube.com/c/KudvenkatArabic/playlists
Chèn ID cuối cùng trong MySQL
- Tác giả: laptrinhvienphp.com
- Đánh giá: 3 ⭐ ( 7285 lượt đánh giá )
- Khớp với kết quả tìm kiếm: 3 cách lấy ID cuối cùng trong bảng CSDL MySQL để giúp cho cả người mới bắt đầu học lập trình PHP cũng có thể hiểu.
SQL: Làm cách nào để lấy id của các giá trị tôi vừa CHÈN?
- Tác giả: qastack.vn
- Đánh giá: 3 ⭐ ( 7200 lượt đánh giá )
- Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] @@IDENTITY không an toàn trong phạm vi và sẽ giúp bạn lấy lại id từ bảng…
Lấy Lại Dữ Liệu Sau Khi Xóa
- Tác giả: dotnet.edu.vn
- Đánh giá: 5 ⭐ ( 6800 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Bạn đã bao giờ nhỡ tay xóa mất một bảng ( TABLE) hoặc xóa sạch dữ liệu trong bảng (DELETE) của một database đang hoạt động rất nhộn nhịp, để rồi giật mình nhận ra mình vừa phạm một lỗi tày đình?
Sửa các câu lệnh SQL để tinh chỉnh kết quả truy vấn
- Tác giả: support.microsoft.com
- Đánh giá: 3 ⭐ ( 7446 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Ở phía sau, các truy vấn Access sử dụng Ngôn ngữ Truy vấn Chuẩn (Standard Query Language, SQL) và trong một số trường hợp, bạn có thể sửa SQL để tinh chỉnh kết quả truy vấn.
Lấy lại Máy chủ SQL trên phần mềm Misa – Kế toán Đức Minh
- Tác giả: ketoanducminh.edu.vn
- Đánh giá: 3 ⭐ ( 8173 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Lấy lại Máy chủ SQL trên phần mềm Misa – Kế toán Đức Minh
Lấy ID vừa insert vào Database bằng PHP
- Tác giả: laptrinhtudau.com
- Đánh giá: 4 ⭐ ( 1831 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Lấy ID vừa insert vào Database bằng PHP – Lập Trình Từ Đầu 5 Cơ Sở Dữ Liệu MySQL Và PHP
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình