Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Używanie wyzwalacza do symulowania drugiej kolumny tożsamości w SQL Server 2005

Tylko pomysł, jeśli masz 2 kolumny "tożsamości", to na pewno byłyby "zsynchronizowane" - jeśli nie dokładnie taka sama wartość, to różniłyby się o stałą wartość. Jeśli tak, możesz dodać kolumnę „druga tożsamość” jako COMPUTED kolumna , co równoważy tożsamość podstawową? A może moja logika jest tutaj błędna?

Edycja :Zgodnie z komentarzem Martina, zauważ, że twój obliczenia mogą wymagać wartości N * id + C, gdzie N to przyrost, a C przesunięcie / delta - wybacz mi zardzewiałą matematykę.

Na przykład:

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

Edytuj Pamiętaj, że w przypadku Sql 2012 i nowszych możesz teraz użyć niezależnej sekwencji aby utworzyć dwie lub więcej niezależnie zwiększających się kolumn w tej samej tabeli.

Uwaga :OP zmodyfikował pierwotny wymóg, aby uwzględnić sekwencje odzyskiwania (zauważając, że kolumny tożsamości w SQL nie odzyskują użytych identyfikatorów po usunięciu).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Widok SQL:łączyć tabele bez powodowania duplikowania danych w każdym wierszu?

  2. Odnośnie profilowania SQL

  3. Importuj plik CSV do SQL Server

  4. SQL Server:obliczanie zakresów dat

  5. Porównaj DATETIME i DATE ignorując część czasu