sql >> Databáze >  >> RDS >> Sqlserver

Použití spouštěče k simulaci druhého sloupce identity v SQL Server 2005

Jen pro představu, pokud máte 2 sloupce "identity", pak by jistě byly "synchronizované" - pokud by nebyly úplně stejné, pak by se lišily o konstantní hodnotu. Pokud ano, proč nepřidat sloupec „druhá identita“ jako COMPUTED sloupec , který kompenzuje primární identitu? Nebo je zde moje logika chybná?

Edit:Podle Martinova komentáře si všimněte, že váš výpočet může být N * id + C, kde N je přírůstek a C offset / delta - omluvte mou rezavou matematiku.

Například:

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

Upravit Upozorňujeme, že pro SQL 2012 a novější můžete nyní použít nezávislou sekvenci vytvořit dva nebo více nezávisle rostoucích sloupců ve stejné tabulce.

Poznámka :OP upravila původní požadavek tak, aby zahrnoval sekvence pro navrácení (upozorňuje na to, že sloupce identity v SQL nezískávají zpět použitá ID po odstranění).



  1. Formátování časového razítka SQL pomocí PHP

  2. Konverzní tabulka z MyISAM na INNODB

  3. Nelze určit polymorfní typ, protože vstup má neznámý typ

  4. Odstraňování problémů se zablokováním v SQL Server 2008