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

Използване на тригер за симулиране на втора колона за самоличност в SQL Server 2005

Само една идея, ако имате 2 колони "идентичност", тогава те със сигурност ще бъдат "в синхрон" - ако не точно същата стойност, тогава ще се различават с постоянна стойност. Ако е така, тогава защо не добавите колоната „втора самоличност“ като COMPUTED колона , което компенсира основната самоличност? Или тук логиката ми е грешна?

Редактиране:Според коментара на Мартин, имайте предвид, че вашето изчисление може да се наложи да бъде N * id + C, където N е увеличението, а C отместването/делта - извинете моята ръждясала математика.

Например:

ALTER TABLE MyTable ADD OtherIdentity AS Id * 2 + 1;

Редактиране Обърнете внимание, че за Sql 2012 и по-нови вече можете да използвате независима последователност за създаване на две или повече независимо увеличаващи се колони в една и съща таблица.

Забележка :OP е редактирал първоначалното изискване, за да включва последователности за възстановяване (отбелязвайки, че колоните за самоличност в SQL не възстановяват използвани идентификатори, след като бъдат изтрити).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Entity Framework не работи с времева таблица

  2. EF 6 - Как правилно да изпълнявате паралелни заявки

  3. Синхронизиране на бази данни на SQL Server 2008 през HTTP с помощта на WCF &Sync Framework

  4. Вземете ROWS като КОЛОНИ (динамична PIVOT заявка на SQL Server)

  5. Заявка за това как да добавите липсващите дати в sql