Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Nhận ID của các bản ghi được chèn lần cuối

SCOPE_IDENTITY () sẽ cung cấp chính xác cho bạn ID CUỐI CÙNG. Những gì bạn cần là kết hợp nó với @@ Rowcount để cung cấp cho bạn phạm vi ID. Như Richard khác đã chỉ ra , điều này chỉ hoạt động nếu mức tăng của bạn được đặt thành 1

Ví dụ:

declare @last int, @first int
insert ...
select @last = scope_identity(), @first = scope_identity() - @@rowcount + 1

Một cách khác (sử dụng cách này trong SQL Server 2008 để có kết quả được đảm bảo) để làm điều này là sử dụng ĐẦU RA mệnh đề

declare @ids table (id int)
INSERT INTO Table1 (FirstName ,LastName ,EmailAddress)
output inserted.id into @ids

-- Get the ids
SELECT id from @Ids

Bảng hiện chứa tất cả các id được chèn vào



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xóa tài khoản thư cơ sở dữ liệu trong SQL Server (T-SQL)

  2. Cách gửi một email HTML từ SQL Server (T-SQL)

  3. Tìm tên bảng trong tất cả các đối tượng của tất cả cơ sở dữ liệu

  4. Trả về 0 khi kết quả trống

  5. Sql Server 2008 địa lý Giới hạn kích thước chuỗi