sql >> Databasteknik >  >> RDS >> Sqlserver

Använda en utlösare för att simulera en andra identitetskolumn i SQL Server 2005

Bara en idé, om du har 2 "identitets"-kolumner, så skulle de säkert vara "synkroniserade" - om inte exakt samma värde, så skulle de skilja sig med ett konstant värde. Om så är fallet, varför inte lägga till kolumnen "andra identitet" som en COMPUTED kolumn , vilket uppväger den primära identiteten? Eller är min logik felaktig här?

Edit:Enligt Martins kommentar, notera att din beräkning kan behöva vara N * id + C, där N är Increment och C offset / delta - ursäkta min rostiga matematik.

Till exempel:

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

Redigera Observera att för SQL 2012 och senare kan du nu använda en oberoende sekvens för att skapa två eller flera oberoende inkrementerande kolumner i samma tabell.

Obs :OP har redigerat det ursprungliga kravet för att inkludera återkravssekvenser (noterar att identitetskolumner i SQL inte återtar använda ID:n när de tagits bort).



  1. sqlLiteDatabase.query() för INNER JOIN

  2. Hur man tar fysisk backup för icke-företags MySQL INNODB-motor

  3. Google Maps Spara polygon och punkter i MySQL med PHP

  4. Infogar HTML-formulär $_POST Array i MySQL med Implode