2009-09-11 6 views
0

Je suis conscient que les outils de changement SQL générateurs automatiques existent, mais je voudrais créer un outil très léger.Création d'un modeste script de modification SQL de génération automatique?

Actuellement, je manuellement le journal des procédures stockées ou des changements de table (ou nouveau stockées proc ou tables), alors que ce qui est très efficace lors de la publication/libérer son temps (donc alors que ces outils existent)

Je veux juste automatisez la partie de génération de script sql. Je suis conscient que SQL peut être configuré pour enregistrer (ou insérer un enregistrement) lorsque certaines modifications de base de données se produisent (cela remplacerait effectivement la première partie manuelle de la journalisation des modifications), j'ai trouvé des tutoriels sur la façon de mettre en place donc je vais bien là-bas.

La partie que je voudrais savoir comment faire:

Compte tenu d'une table qui contient des données concernant les (nouvelles/modifiées procédures stockées et de nouvelles tables/modifiés) comment puis-je puis générer un script SQL?

Cette génération automatique peut-elle être effectuée en SQL (par exemple, des fonctions/commandes?) Ou devrais-je recourir à l'écriture d'un programme pour cracher le script SQL?

+0

ok, creuser un peu plus tard, la fonction intégrée sp_helptext « Stored_proc_name » retourne le contenu des procédures stockées, albiet avec « créer », de mais il serait trivial de faire des remplacements de chaîne pour procs stockées Altered. Je dois maintenant pouvoir modifier automatiquement la table de script, par exemple ajouter/supprimer/modifier un champ? – Darknight

+0

Également autogenerate pour ajouter une nouvelle table? Darknight

Répondre

1

Je pense que la meilleure façon de gérer ce genre de chose est de garder un journal d'audit des changements de ddl comme vous l'avez mentionné. Par exemple, dans sql server 2005, vous pouvez avoir un trigger trigger "AFTER DDL_TABLE_EVENTS" et utiliser la fonction EVENT() pour obtenir le contenu de la modification ddl (comme xml). Supposons que vous ayez votre déclencheur de modification ddl pour écrire dans une table qui contient la liste des modifications commandées que vous pouvez rejouer sur d'autres serveurs - comme dev to test to prod. Lorsque vous êtes prêt à mettre le serveur cible au même niveau que le serveur source, créez un script - même un sproc ou une fonction pour vider la table ddl changelog dans un fichier texte.

Questions connexes