Question

Pour ma demande, je dois soutenir des scénarios de mise à jour et la base de données risque d'être affectée.

Je veux être en mesure de mettre à jour d'une ancienne version à la nouvelle sans avoir à installer des versions intermédiaires. Par exemple. Supposons que j'ai version A (la plus ancienne), B (intermédiaire) et C (nouvelle version). Je veux être en mesure de mettre à jour la version A droite à la version C. Pour les fichiers d'application est simple, je substitue à l'ancien avec les nouveaux. Cependant, pour la base de données que je ne veux pas générer un script SQL pour modifier le schéma de base de données de A à droite C, au lieu que je veux d'abord appliquer un script pour modifier le schéma de A à B et de B à C

Comment puis-je stocker la version de base de données pour une base de données SQL Server? Y at-il des biens spéciaux que je peux définir, au lieu de mettre en œuvre une table de version? Dans mon code (.NET) Je veux lire la version de base de données et en conséquence pour exécuter la mise à jour des scripts SQL dans le bon ordre.

Je vais utiliser les deux SQL Server 2005 et SQL Server 2008.

Était-ce utile?

La solution

J'utilise les propriétés étendues de base de données, consultez Version Control et votre Base de données :

SELECT [value] 
    from ::fn_listextendedproperty (
        'MyApplication DB Version', 
        default, default, default, default, default, default);

...

EXEC sp_updateextendedproperty 
    @name = N'MyApplication DB Version', @value = '1.2';
GO

Autres conseils

Coller une table de version, son simple, son efficacité, et pour le passé, erm bien ses plus de 10 ans, il a travaillé un régal pour moi.

J'ai écrit ce en réponse à une autre question ici

Cela dépend de votre version de SQL Server que vous utilisez.

Je ne crois pas une version de base de données est construit dans la propriété d'une base de données, vous pouvez cependant probablement utiliser une propriété étendue.

Personnellement, je crée ma propre table version, car cela vous permettra d'associer plus de métadonnées avec elle.

Vous pouvez ajouter une table qui enregistre la version actuelle. Ensuite, exécutez les scripts de mise à niveau mais les scripts doivent être rédigés de telle manière qu'ils n'exécutent pas si la version actuelle est supérieure à la version attendue par le script.

De cette façon, il est hors de propos, quelle est la version actuelle du schéma de base de données. Les scripts feront seulement des changements qui ne sont pas déjà apportées au schéma.

Vous pouvez trouver des procédures stockées qui réduisent considérablement l'effort de mise à niveau l'écriture des scripts: Comment maintenir la base de données SQL Server version du schéma

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top