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 :

Reporter modification base de dev vers prod [2008]


Sujet :

MS SQL Server

  1. #1
    Membre averti Avatar de tunizar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 573
    Points : 427
    Points
    427
    Par défaut Reporter modification base de dev vers prod
    Bonjour,
    J'ai une base sur un serveur de développement et comme vous savez tous la structure d'une base peut être modifié au fur et à mesure.
    Quand je modifié sa structure, je génère le script dans un fichier (.SQL) et je le déploie plus tard sur la prod. Mais parfois il arrive que j'oublie !
    Existe-il un moyen ou un outil qui permet de faire la différence entre une base source et une base destination et générer le script final pour que la destination soit idem comme la source ???
    Merci !

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Un outil simple à mettre en place est de créer un trigger DDL sur l'ensemble des événements de la base, tracer ces événements dans une table à part (par exemple dans la base msdb faite pour la maintenance) et ensuite de relancer un à un l'ensemble des scripts SQL de modification depuis la bonne date !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Un premier jet d'un tel outil :

    la table pour tracer toutes les commandes DDL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    USE msdb:
    GO
     
    CREATE SCHEMA S_DDL
    CREATE TABLE T_DDL
    (DDL_ID                 BIGINT IDENTITY PRIMARY KEY,
     DDL_DB                 sysname,
     DDL_EVENT_TYPE         sysname,
     DDL_POST_TIME          DATETIME2,
     DDL_SCHEMA             NVARCHAR(128),
     DDL_OBJECT             NVARCHAR(128),
     DDL_OBJ_TYPE           NVARCHAR(128),
     DDL_SQL_COMMAND        NVARCHAR(max),
     DDL_XML                XML);
    GO:

    USE MaBase
    GO

    Le déclencheur qui trace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE TRIGGER E_DDL_DATABASE
    ON DATABASE
    FOR DDL_DATABASE_LEVEL_EVENTS
    AS
    SET NOCOUNT ON;
    INSERT INTO msdb.S_DDL.T_DDL 
    SELECT EVENTDATA().value('(/EVENT_INSTANCE/DatabaseName)[1]', 'sysname')
         , EVENTDATA().value('(/EVENT_INSTANCE/EventType)[1]', 'sysname')
         , EVENTDATA().value('(/EVENT_INSTANCE/PostTime)[1]', 'sysname')
         , EVENTDATA().value('(/EVENT_INSTANCE/SchemaName)[1]', 'sysname')
         , EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]', 'sysname')
         , EVENTDATA().value('(/EVENT_INSTANCE/ObjectType)[1]', 'sysname')
         , EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]', 'NVARCHAR(max)')
         , EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'xml');
    GO
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    En complément, la procédure de report (valable pour SQL Server 2016), pas testée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    CREATE OR ALTER PROCEDURE S_DDL.P_REPORT_DDL_SCRIPT @DB sysname, @DATETIME DATETIME2, @CREATE_ONLY BIT = 1
    AS
    SET NOCOUNT ON;
    IF NOT EXISTS(SELECT * FROM sys.databases WHERE name = @DB)
    BEGIN
       RAISERROR ('La base %s n''existe pas sur ce serveur %s', 16, 1, @DB, @@SERVERNAME);
       RETURN;
    END;
    SELECT N'USE [' + @DB + '];'
    UNION ALL
    SELECT CASE 
              WHEN @CREATE_ONLY = 1 AND DDL_EVENT_TYPE IN ('CREATE_FUNCTION', 'CREATE_TRIGGER', 'CREATE_PROCEDURE', 'CREATE_VIEW')
                 THEN 'CREATE OR ALTER ' + SUBSTRING(DDL_SQL_COMMAND, 6, LEN(DDL_SQL_COMMAND) - 6) 
              ELSE DDL_SQL_COMMAND
           END + ';'
           FROM   msdb.S_DDL.T_DDL
           WHERE  DDL_DB = @DB
           AND    DDL_POST_TIME >=  @DATETIME
           AND    DDL_EVENT_TYPE LIKE CASE 
                                         WHEN @CREATE_ONLY = 1 
                                            THEN N'CREATE?_%' 
                                         ELSE DDL_EVENT_TYPE 
                                      END ESCAPE N'?'   
    GO
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Invité
    Invité(e)
    Par défaut
    Il y a Visual Studio 2015 qui fait ça, gratuitement.
    Il y a aussi Red Gate Sql Compare qui fait ça mieux mais en payant.
    Il faut cependant repasser souvent dans les scripts générés parce qu'ils utilisent souvent des tables temporaires qui ne sont pas toujours pertinentes : Quand la table fait 20 Go et que tu veux juste rajouter une colonne, c'est une peu excessif !

  6. #6
    Membre averti Avatar de tunizar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 573
    Points : 427
    Points
    427
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Un outil simple à mettre en place est de créer un trigger DDL sur l'ensemble des événements de la base, tracer ces événements dans une table à part (par exemple dans la base msdb faite pour la maintenance) et ensuite de relancer un à un l'ensemble des scripts SQL de modification depuis la bonne date !

    A +
    Bonjour,
    Merci pour la réponse, ça semble logique, cependant j'ai aucune idée comment procéder, je n'ai pas ce niveau de connaissance en admin ...
    J'ai trouvé ce tuto mais je ne sais pas est ce que c'est bon ou pas

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

Discussions similaires

  1. Migration catalog de dev vers prod
    Par mariachi dans le forum OBIEE
    Réponses: 0
    Dernier message: 06/02/2015, 09h37
  2. report developpement vers prod
    Par mapmip dans le forum SSRS
    Réponses: 0
    Dernier message: 05/11/2013, 15h35
  3. Publier un cube de DEV vers PROD ?
    Par tsara dans le forum Cognos
    Réponses: 0
    Dernier message: 08/08/2012, 11h35
  4. Réponses: 4
    Dernier message: 30/08/2006, 08h37
  5. [Crystal Reports]Modification d'un reports fait
    Par tripper.dim dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 12/11/2003, 10h16

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