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 :

Detecter la MAJ d'une base


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 129
    Par défaut Detecter la MAJ d'une base
    Bonjour,

    J'ai une base de donnée MS SQL-Server.
    Je voudrais detecter la MAJ de la base (insert, update, delete) pour lancer une application (MS SQL Server --> Oracle).
    J'ai pensé aux TRIGGER mais à part lancer une procédure, je ne peux pas faire grand chose.

    Le but c'est de lancer une application qui va récupérer l'ensemble des données mise à jour.

    Et ainsi éviter de faire des synchronisations périodiques.


    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 129
    Par défaut
    J'ai trouvé cette fonction ...

    [ variable = CALL ] xp_cmdshell ( chaîne [ , 'no_output' ] )

    Mais bon ... on ne recupere pas (dans l'appli lancé) les données inséré, updaté, supprimé.

    ...

    ça regle pas mon pb.

  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
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Il serait plus simple d'implémenter une réplication plutôt que de redévelopper la roue !!!

    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
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 129
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Il serait plus simple d'implémenter une réplication plutôt que de redévelopper la roue !!!

    A +

    C'est à dire ?
    Je n'ai trouvé que des applications qui font des replications MS SQLServer -> Oracle à des intervalles réguliers ou à la main.

    Ce que je veux, c'est qu'a chaque fois que je "INSERT", "DELETE", "UPDATE" un table A sur mon serveur MS SQL Server, la copie de la table A sur mon serveur Oracle soit fait de même.
    D'où l'idée de trigger ... mais impossible d'attaquer une base de type differente depuis un trigger ou une procedure stockée ....

    Si vous avez une solution, je suis preneur !

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 129
    Par défaut
    L'objectif c'est d'éviter de faire des synchronisations pour rien (si aucune modif ...) et d'être le plus "up-to-date" avec la base d'origine MS SQL-Server ...

  6. #6
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Je pense que tu devrais regarder lu côté de la réplication comme te le conseille SQLPro.

    Sinon techniquement, ce que tu demandes n'est pas impossible mais probablement moins performant que la réplication.

    Sous SQL Server, tu peux écrire une requête de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT tblExterne.* FROM
    OPENROWSET('MonProvider', DRIVER='monDriver'; SERVER='monServeur';UID='monLogin';PWD='monPassword';DATABASE='maBD';APPLI='maBD','maRequête') tblExterne
    Donc tu dois pouvoir faire un SELECT ou une requête de mise à jour de table de cette façon...

    Regarde aussi par ici : http://msdn2.microsoft.com/fr-fr/library/ms188721.aspx

Discussions similaires

  1. MaJ d'une base de données en toute sécurité ?
    Par yellowsub122 dans le forum VB.NET
    Réponses: 11
    Dernier message: 16/03/2010, 13h58
  2. Réponses: 1
    Dernier message: 06/02/2009, 10h20
  3. Maj d'une base 7.0 vers une base 2000
    Par ditter dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/11/2005, 17h05

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