@@ IDENTITY (Giao dịch-SQL) – Máy chủ SQL – chèn sql lấy lại id

@@ 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.

Xem Thêm  Cách viết ưu nhược điểm của bản thân trong CV xin việc hiệu quả nhất - kaizen chìa khoá của sự thành công

@@ 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)

Xem Thêm  Cách in đậm, in nghiêng và định dạng văn bản trong HTML - cách tô đậm phông chữ trong html

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 command

    Text version of the video
    http://csharp-video-tutorials.blogspot.com/2012/08/identity-column-in-sql-server-part-7.html

    Healthy 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=1

    Slides
    http://csharp-video-tutorials.blogspot.com/2013/08/part-7-identity-column.html

    All SQL Server Text Articles
    http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html

    All SQL Server Slides
    http://csharp-video-tutorials.blogspot.com/p/sql-server.html

    All Dot Net and SQL Server Tutorials in English
    https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd

    All 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

Xem Thêm  JavaScript cho người mới bắt đầu - làm thế nào để mã javascript