Se você precisar especificamente alterar o valor da chave primária para um número diferente (ex 123 -> 1123). A propriedade de identidade bloqueia a alteração de um valor PK. Definir Identity_insert não vai funcionar. Não é recomendável fazer uma inserção / exclusão se houver exclusões em cascata (a menos que você desative a verificação de integridade referencial).
Este script desativará a identidade em um PK:
***********************
sp_configure 'allow update', 1
go
reconfigure with override
go
update syscolumns set colstat = 0 --turn off bit 1 which indicates identity column
where id = object_id('table_name') and name = 'column_name'
go
exec sp_configure 'allow update', 0
go
reconfigure with override
go
***********************
Em seguida, você pode definir os relacionamentos para que eles atualizem as referências de chave estrangeira. Ou então, você precisa desativar a imposição de relacionamento. Este link SO mostra como:
Como as restrições de chave estrangeira podem ser temporariamente desabilitadas usando o T-SQL?
Agora, você pode fazer suas atualizações. Eu escrevi um script curto para escrever toda a minha atualização SQL com base no mesmo nome de coluna (no meu caso, eu precisava aumentar o CaseID em 1.000.000:
select
'update ['+c.table_name+'] SET ['+Column_Name+']=['+Column_Name+']+1000000'
from Information_Schema.Columns as c
JOIN Information_Schema.Tables as t ON t.table_Name=c.table_name and t.Table_Schema=c.table_schema and t.table_type='BASE TABLE'
where Column_Name like 'CaseID' order by Ordinal_position
Por fim, reative a integridade referencial e, em seguida, reative a coluna Identidade na chave primária.
Nota: Eu vejo algumas pessoas nessas perguntas perguntando POR QUE. No meu caso, tenho que mesclar dados de uma segunda instância de produção em um banco de dados mestre para poder desligar a segunda instância. Eu só preciso de todos os PK / FKs de dados de operações para não colidir. Os FKs de metadados são idênticos.