sql >> Database >  >> RDS >> Sqlserver

Een trigger gebruiken om een ​​tweede identiteitskolom te simuleren in SQL Server 2005

Gewoon een idee, als je 2 "identiteits"-kolommen hebt, dan zouden ze zeker 'in sync' zijn - zo niet precies dezelfde waarde, dan zouden ze verschillen met een constante waarde. Zo ja, waarom voegt u dan de kolom "tweede identiteit" niet toe als een COMPUTED kolom , die de primaire identiteit compenseert? Of is mijn logica hier gebrekkig?

Bewerken:volgens de opmerking van Martin moet je er rekening mee houden dat je berekening mogelijk N * id + C moet zijn, waarbij N de toename is en C de offset / delta - excuseer mijn roestige wiskunde.

Bijvoorbeeld:

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

Bewerken Houd er rekening mee dat u voor Sql 2012 en later een onafhankelijke reeks kunt gebruiken om twee of meer onafhankelijk oplopende kolommen in dezelfde tabel te maken.

Opmerking :OP heeft de oorspronkelijke vereiste aangepast om terugvorderingsreeksen op te nemen (merk op dat identiteitskolommen in SQL geen gebruikte ID's terugvorderen nadat ze zijn verwijderd).



  1. Hoe u alle standaardbeperkingen hernoemt volgens de naamgevingsnormen of naamgevingsconventie in SQL Server - SQL Server / TSQL-zelfstudie, deel 93

  2. MySQL 8 Het gemiddelde berekenen door te partitioneren op datum

  3. Hoe kan SQL Workload Analysis u helpen?

  4. Oracle-databasekoppelingen gebruiken zonder onleesbare dynamische SQL