Puis-je utiliser la commande
DBCC CHECKIDENT(<table_name>, RESEED, value)
3 Réponses :
Puis-je utiliser la commande DBCC Checkident pour réinitialiser une valeur de courant d'identité à l'original sur SQL Server 2008? P> blockQuote>
oui. p>
Si oui, est-ce la bonne façon de faire cette opération sans avoir d'inconvénient? p> blockQuote>
C'est la seule façon documentée de le faire. p>
inconvénients possibles: vous pouvez finir par obtenir des valeurs code> identité code> - il n'y a aucune garantie de SQL Server qu'il ne donnerait pas de valeur qui n'est pas déjà utilisée. P>
E.g. Si votre adresse
code> est actuellement de 100, et que vous le réinitialisez à 1, les chances sont plus tôt ou ultérieures, il produira une valeur déjà utilisée. P>
L'identité code> code> comme implémenté dans SQL Server ne vérifie pas les valeurs existantes ou quoi que ce soit - il produit des numéros séquentiels. C'est à vous de décider - surtout si vous avez fait un
reseed code> sur ce
identité code> pour vous assurer que les valeurs ne sont pas dupliquées. P>
La valeur peut être omise. Donc, si vous utilisez
DBCC CHECKIDENT (<table_name>, RESEED);
Par exemple: Définition de votre identité pour commencer à 2000: DBCC Checkident (
Il a un excellent inconvénient si et uniquement si la fièvre est une clé primaire et une référence à toute clé étrangère de tout autre tableau. ReSEEDING aide à rechercher des enregistrements dans la table des transactions ayant des index sur le terrain. P>
la réponse n'a aucun sens.
En fait, il y a trois questions ici. Je suis sûr que vous pouvez les voir ... Si vous avez besoin d'une explication plus poussée, demandez simplement une question