Czy istnieje sposób na trwałe zmiany identyfikatora początkowego dla kolumny tożsamości? Używanie DBCC CHECKIDENT wydaje się ustawić wartość_ostateczną. Jeśli tabela zostanie obcięta, wszystkie wartości zostaną zresetowane.Zmienianie tożsamości w programie SQL Server (na stałe!)
dbcc checkident ('__Test_SeedIdent', reseed, 1000)
select name, seed_value, increment_value, last_value
from sys.identity_columns
where [object_id] = OBJECT_ID('__Test_SeedIdent');
powraca
name seed_value increment_value last_value
-------------------------------------------------
idIdent 1 1 1000
miałem nadzieję, że niektóre składnia jak
alter table dbo.__Test_SeedIdent alter column idIdent [int] identity(1000,1) NOT NULL
istniałaby.
Czy konieczne jest utworzenie nowej kolumny, przesunięcie wartości w poprzek, usunięcie oryginalnej kolumny i zmiana nazwy nowej?
Running Profiler, widzę, że MS tworzy tymczasową tabelę, kopiuje dane przez, a następnie upuszcza istniejącą tabelę i zmienia nazwę tabeli tymczasowej. Prawdopodobnie dlatego, że nie może być więcej niż jedna kolumna tożsamości. – avenmore