Você não pode adicionar
IDENTITY
para uma coluna existente. Simplesmente não pode ser feito. Você precisará criar um novo coluna do tipo
INT IDENTITY
e, em seguida, solte a coluna antiga que você não precisa mais (e possivelmente renomeie a nova coluna para o nome antigo - se for necessário) Além disso:eu não faça isso no designer visual - isso tentará recriar a tabela com a nova estrutura, copiar todos os dados (todas as 10 milhões de linhas) e, em seguida, elimine a tabela antiga.
É muito mais eficiente usar instruções T-SQL diretas - isso fará uma atualização "in-loco", não destrutiva (nenhum dado é perdido) e não precisa copiar cerca de 10 milhões de linhas no processo...
ALTER TABLE dbo.YourTable
ADD NewID INT IDENTITY(1,1) NOT NULL
Quando você adiciona uma nova coluna do tipo
INT IDENTITY
à sua mesa, então ela será preenchida automaticamente com números consecutivos. Você não pode impedir que isso aconteça e também não pode atualizar os valores posteriormente. Nenhuma dessas opções é realmente muito útil, no final - você pode acabar com valores de ID diferentes...
- crie a nova tabela com antecedência, com a estrutura adequada e a
IDENTITY
já está em vigor - e ative
SET IDENTITY_INSERT (yourtable) ON
nessa tabela para permitir que os valores sejam inseridos na coluna de identidade - copie esses dados da fonte original
- desative a inserção de identidade novamente:
SET IDENTITY_INSERT (yourtable) OFF
Somente com essa abordagem você poderá obter os mesmos IDs em uma coluna IDENTITY em sua nova tabela.