Soweit ich weiß, Sie keine Identitätsspalte aktualisieren kann. Wenn Sie die Identität beibehalten möchten (nachdem Sie ihre Werte geändert haben), besteht eine Möglichkeit darin, eine andere spiegelnde Tabelle (gleiche Felder) zu erstellen und alle Daten darin zu übertragen. So etwas (am Ende haben Sie eine Tabelle mit einem neuen IDENTITY-Feld).
Originaltabelle
CREATE TABLE TESTID (id iNT IDENTITY(1,1), DESCR VARCHAR(100), PROFILEID INT)
INSERT INTO TESTID VALUES ('bbbb', 888);
INSERT INTO TESTID VALUES ('Ccccc', 777);
Neue Tabelle
CREATE TABLE TESTID2 (id INT IDENTITY(1,1), DESCR VARCHAR(100), PROFILEID INT)
Datenübertragung
SET IDENTITY_INSERT TESTID2 ON
INSERT INTO TESTID2 (ID, DESCR, PROFILEID)
SELECT 100+ROW_NUMBER() OVER (ORDER BY PROFILEID) AS RN, DESCR, PROFILEID FROM TESTID
SET IDENTITY_INSERT TESTID2 OFF
-Test
INSERT INTO TESTID2 VALUES ('xxxx',999);
SELECT * FROM TESTID;
id DESCR PROFILEID
----------- ----------------- -----------
101 Ccccc 777
102 bbbb 888
103 xxxx 999
Wenn Sie möchten, können Sie Identität Startwert ändern
DBCC checkident ('TESTID2', reseed, 4000)
INSERT INTO TESTID2 VALUES ('yyy',111)
id DESCR PROFILEID
----------- -------------------------- -----------
101 Ccccc 777
102 bbbb 888
103 xxxx 999
4001 yyy 111
Am Ende verwenden, Ihre ursprüngliche Tabelle löschen und die neuen umbenennen.
Wenn Ihre Profil-ID automatisch erhöht wird, können Sie sie nicht aktualisieren. –
Lassen Sie die Spalte fallen und fügen Sie sie erneut hinzu und aktualisieren Sie sie mit Zeilennummer. –
Ja, es wurde auf automatische Erhöhung gesetzt. Nicht einmal danach SET IDENTITY_INSERT Profile ON – Biswa