Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Вземете ID на последните вмъкнати записи

SCOPE_IDENTITY() ще ви даде правилно ПОСЛЕДНИЯ ИД. Това, от което се нуждаете, е да го комбинирате с @@Rowcount, за да ви даде диапазон от идентификатори. Както посочва другият Ричард , това работи само ако вашето увеличение е зададено на 1

Например:

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

Друг начин (използвайте това в SQL Server 2008 за гарантирани резултати) за да направите това е да използвате ИЗХОД клауза

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

-- Get the ids
SELECT id from @Ids

Сега таблицата съдържа всички вмъкнати идентификатори



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Неуспешно влизане за потребител „NT AUTHORITY\NETWORK SERVICE“

  2. Използвате ли тип данни за време на SQL Server в C#.NET приложение?

  3. SQL Server:присъства ред в една заявка, липсва в друга

  4. Обединете цялата геометрия в таблица на SQL Server като GeomUnion в Postgres

  5. Проблем със SQL заявката