web-dev-qa-db-fra.com

Comment redéfinir une identité de table dans SQL Server 2008 et l'annuler en toute sécurité?

Je dois le faire uniquement pour les tests, mais l'annuler lorsque le test est terminé.

J'ai vu quelques tutoriels en ligne sur la façon de réamorcer une table, mais pas tellement sur la façon de la défaire.

Disons que la définition de la table est la suivante:

create table beer
(
 beer_id  numeric(10) not null,
 mnemonic        nvarchar(8)
);
go

Disons que je veux que les nouvelles identités commencent temporairement à 12345, et à la fin supprimez les nouvelles lignes et définissez l'identité suivante sur ce qu'elle aurait été.

57
Hamish Grubijan

Parfois, nous avons une restriction de schéma de certains utilisateurs et provoque donc une erreur (Impossible de trouver une table ou un objet avec le nom "TableName". Vérifiez le catalogue système), donc la meilleure chose est de suivre le code ci-dessous.

Schema.TableName doit être placé dans une apostrophe

DECLARE @SeedValue INT
SET @SeedValue = (SELECT MAX(ColumnName) FROM Schema.TableName)
DBCC CHECKIDENT ('Schema.TableName',RESEED,@SeedValue)
1
Babulal