IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Script de migration de procédures stockées


Sujet :

MS SQL Server

  1. #1
    Membre expérimenté
    Inscrit en
    Octobre 2005
    Messages
    344
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 344
    Par défaut Script de migration de procédures stockées
    Bonjour,

    J'ai récupéré une application et je dois rafraichir l'environnement de RECETTE par la PROD. Les noms des bases de prod contient des PRD et celui des bases de recette PRJ (ex: la base BASEPRD en PROD sera BASEPRJ en recette)

    Le problème, c'est qu'il y a le nom des bases de prod en dur dans les procédures stockées. Et je dois donc les modifier une par une et remplacer tous les "PRD" par "PRJ".

    J'ai réussi à pondre un script qui me liste les procédures stockées impactées :
    select a.name from dbo.sysobjects a, dbo.syscomments b
    where a.id=b.id
    and a.type='P'
    and b.text like '%PRD%'
    Par contre, est-il possible de scripter les changements ? Avoir un script SQL à lancer qui reprend toutes ces procédures et les re-créée avec les bons noms de base ??

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Salut,

    Pas facile. Le meilleur moyen serait sans doute de garder tes sp en fichiers SQL sur le disque et de faire un chercher/remplacer pour changer le nom de la base à la volée.
    Tu as AbaPerls d'Erland Sommarskog qui est une collection de scripts perl qui peuvent t'aider.

    Sinon... pourquoi ne pas renommer ta base de données ? Quelle utilité d'avoir la notion de prod dans le nom de la base ? Et pourquoi préfixer les objets dans tes sp par le nom de la base ?

  3. #3
    Membre expérimenté
    Inscrit en
    Octobre 2005
    Messages
    344
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 344
    Par défaut
    Ce serait bien évidemment bien plus simple d'avoir les mêmes noms pour les bases ... Mais ces machines ont été installées comme ça et c'est très difficile de faire comprendre maintenant qu'il faudrait renommer les bases. Il y a eu des normes mises en place ...
    Merci rudib pour ton lien ABAPERLS, mais le problème c'est qu'il faudrait installer PERL sur le serveur, et ça , ça ne passera pas. L'éditeur (en fait, c'est un ERP qui est installé sur cette machine) n'a déjà pas validé la version SP4 de SQL Server , alors PERL ....
    J'ai pensé à une autre solution :
    select 'sp_helptext ' + a.name + CHAR(13)+CHAR(10) + 'go' from dbo.sysobjects a, dbo.syscomments b
    where a.id=b.id
    and a.type='P'
    and b.text like '%PRD%'
    Qui va m'extraire les définitions de toutes les procédures stockées que je mettrais dans un fichier texte. Puis, remplacer tous les "PRD" par "PRJ" et les "CREATE" par "ALTER". Puis rejouer le script.
    Je sais, c'est pas propre, c'est bourrin, mais moins que de se "taper" les SP à la main. J'aurai préféré un script qui fasse tout ça en SQL.
    Donc si quelqu'un a une meilleure solution, je suis très évidemment preneur ....

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Par défaut
    Bonjour,

    si tu exportais toutes les SP dans un fichier texte, en utilisant entreprise manager (clic droit sur la base, all tasks -> generate SQL --> StoredProcedures), crois-tu que je fichier ainsi généré soit inutilisable (de part sa taille) par NotePad ? (au pire tu exportes le codes par bloc de 50 sp).

    Ensuite tu n'as "qu'à" faire un rempalcement dans le fichier texte, puis exécuter ce fichier sur ta base de recette pour recréer tes SPs.

    Y'a de la manip manuelle, mais bon, c'est largement automatisable si tu devais le faire plusieurs fois.

  5. #5
    Membre expérimenté
    Inscrit en
    Octobre 2005
    Messages
    344
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 344
    Par défaut
    Merci ZERS, c'est encore ce qu'il y a de plus rapide. Je vais opter pour cette solution. Merci de votre aide à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/10/2010, 12h16
  2. Réponses: 6
    Dernier message: 20/12/2007, 11h49
  3. Script Shell et procèdure stockée
    Par Flipmode dans le forum SQL
    Réponses: 8
    Dernier message: 15/06/2007, 17h15
  4. Appel d'un script SQL dans une procdure stockée
    Par doudou10000 dans le forum Oracle
    Réponses: 10
    Dernier message: 01/12/2004, 10h01
  5. Réponses: 21
    Dernier message: 10/11/2004, 18h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo