2009-06-18 6 views
0

J'ai une table dans laquelle la clé primaire est un GUID avec un défaut de NewID. Si la colonne PK avait une valeur de XYZ lorsque je l'ai sauvegardée, j'attendrais XYZ dans la table restaurée. En fait, je reçois PQR (bien l'équivalent GUID). Il semble que le GUID soit régénéré lors de la restauration. Est-ce que cela se passe réellement (cela semble un peu fou), et si oui, comment peut-on l'éviter?SQL Server: Éviter la régénération du GUID lors de la restauration?

+1

S'il vous plaît afficher une copie de votre table +1 exactement – Aheho

Répondre

2

Personne ne modifie vos données lors de la restauration (j'imagine que vous voulez dire sauvegarde/restauration en tant que véritable instruction BACKUP/RESTORE, et non une solution de copie de données personnalisée). Si le guid a changé, soit vous avez restauré différentes données, soit vous changez les données vous-même et vous ne savez pas exactement quand (déclenche l'application?).

+0

LDD - la valeur par défaut débute seulement si vous INSERT une nouvelle ligne et ne pas évaluer une valeur pour cette colonne particulière. Cela ne devrait jamais arriver lors d'une restauration. –

+0

Voici ce que j'ai trouvé dans mes tests: J'utilisais l'option WITH REPLACE b/c Je ne sauvegardais pas la queue du log. Il me semble que cela provoque le problème que je décris avec GUIDS étant re-gened. Fait intéressant, si je sauvegarde le journal et utilise WITH REPLACE, tout est OK. Je ne suis pas sûr si c'est b/c WITH REPLACE est ignoré dans ce scénario, ou si quelque chose d'autre est en place. –

+0

Donc, fondamentalement, vous restaurez des données * différentes *. Est-ce que vos GUID qui sont à 'issue', c'est votre base de données * entière *, vous en regardez simplement une autre après la RESTORE. –

Questions connexes