Rozwiązaniem powyższego problemu jest utworzenie od nowa tabeli z prawidłową strukturą. Należy pamiętać o zrobieniu kopii tabeli.
Należy wykonać następujące czynności:
- Usuwamy wszystkie powiązania do tabeli.
- Zawsze sprawdzamy (TAKI NAWYK!!!) czy istnieje tabela tymczasowa. Jeżeli tak to ją kasujemy.
- Tworzymy tabelę tymczasową i kasujemy naszą właściwą tabelę (wcześniej radziłbym zrobić jej kopie)
- Tworzymy strukturę nowej tabeli z IDENTITY
- Dopisujemy dane i sprzątamy po sobie kasując tabelę tymczasową.
Poniżej przedstawiono przykładowy kod:
-- Drop temp table if they already exist IF OBJECT_ID('TempDB..#Test', 'U') IS NOT NULL DROP TABLE #Test; -- Create the temp table SELECT * INTO #Test FROM [dbo].[TEST] DROP TABLE [dbo].[TEST] CREATE TABLE [dbo].[TEST]( [id] [int] IDENTITY(1,1) NOT NULL, [test] [varchar](11) NULL, CONSTRAINT [PK_TEST] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET IDENTITY_INSERT [dbo].[TEST] ON INSERT INTO [dbo].[TEST] (id, test) SELECT id, test FROM #Test SET IDENTITY_INSERT [dbo].[TEST] OFF IF OBJECT_ID('TempDB..#Test', 'U') IS NOT NULL DROP TABLE #Test;