Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como propagar automaticamente depois de usar identity_insert?


Use as informações neste link em combinação com uma função SQL que obtém o max(RID) de cada tabela que você precisa redefinir. Por exemplo, se você deseja iniciar sua semente de chave primária em 25000, use o código abaixo (StartSeedValue - 1)
DBCC CHECKIDENT('myTable', RESEED, 24999)

Então, em combinação, você deve acabar com algo assim
DECLARE @maxVal INT
SELECT @maxVal = ISNULL(max(ID),0)+1 from mytable
DBCC CHECKIDENT('mytable', RESEED, @maxVal)

Desculpe pelo pseudo-código, faz um tempo desde que escrevi uma função SQL :)

EDITAR:

Obrigado pela captura, alterei o INTEGER para INT
USE YourDBName
GO 
SELECT *
FROM sys.Tables
GO 

Isso lhe dará uma lista de todas as tabelas de usuários no banco de dados. Use esta consulta como seu 'loop' e isso deve permitir redefinir as sementes em todas as tabelas.