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 :

BackUp de chaque enregistrement d'une table


Sujet :

MS SQL Server

  1. #1
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut BackUp de chaque enregistrement d'une table
    Bonjour, dans le cadre d'une appli de scan (pda) developpée en c#/sqlExpress, je dois sauvegarder chaque enregistrement d'une table dans une autre base de donnée (données sensibles).

    Je pensais à un trigger d'insert sur la table concernée (ouvrir une connexion distante et enregistrer chaque nouvelle ligne). Mais je ne suis pas sur que ce soit viable.

    Comment faites vous ou feriez vous pour enregistrer une ligne dans deux bdd ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Pourquoi un trigger pour une copie ponctuelle ?

    En ce qui me concerne, j'utilise un linked Server et je fais bien attention aux foreign keys avant de lancer ma commande du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INSERT INTO [Db_link_bd_distante].[Nom_BD_Origine].[schema].[table]
               ([champ1]
               ,[champ2]
               ,...)
    select [champ1]
               ,[champ2]
               ,...
    FROM  [BD_courante].[Nom_BD_Cible].[schema].[table]

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bonjour

    Citation Envoyé par dkmix Voir le message
    Bonjour, dans le cadre d'une appli de scan (pda) developpée en c#/sqlExpress, je dois sauvegarder chaque enregistrement d'une table dans une autre base de donnée (données sensibles).
    Il y a un point qui m'échappe là : Sql Server Express ne fonctionne pas sous Windows Mobile/CE; j'ai donc un peu de mal à imaginer l'architecture de l'application.

    Je pensais à un trigger d'insert sur la table concernée (ouvrir une connexion distante et enregistrer chaque nouvelle ligne). Mais je ne suis pas sur que ce soit viable.
    C'est une mauvaise idée. En cas d'indisponibilté de la base distante,la transaction locale va planter et on perd tout, le "try-catch" éventuel dans le trigger ne permettant pas d'intercepter une mise hors ligne de la base.

    Comment faites vous ou feriez vous pour enregistrer une ligne dans deux bdd ?
    Plusieurs solutions, mais il fait donner plus d'info sur l'archi; (cf. ma remarque supra; PDA et SS Express n'allant pas ensemble).

  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 862
    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 862
    Points : 53 015
    Points
    53 015
    Billets dans le blog
    6
    Par défaut
    Il me semble en sus que SQL Server CE n'implémente pas les triggers !
    CREATE TABLE T (C INT)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TRIGGER E
    ON T
    FOR INSERT
    AS SELECT * FROM T
    Erreur majeure*0x80040E14, erreur mineure*25501
    > CREATE TRIGGER E
    ON T
    FOR INSERT
    AS SELECT * FROM T
    Une erreur s'est produite lors de l'analyse de la requête. [ Token line number = 1,Token line offset = 8,Token in error = TRIGGER ]


    A +

  5. #5
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    blue deep :
    Il y a un point qui m'échappe là : Sql Server Express ne fonctionne pas sous Windows Mobile/CE; j'ai donc un peu de mal à imaginer l'architecture de l'application.
    il y a une appli cliente(pda) et une appli serveur. C'est l'appli serveur qui communique avec la bdd. les clients envoient justes des instructions(tcp/ip).

    SQLPro
    Il me semble en sus que SQL Server CE n'implémente pas les triggers !
    Pas de trigger donc.... Peut être un thread en c# pour envoyer les lignes à sauvegarder ? mais çà me semble un peu démesuré

    l'inconnu :
    En ce qui me concerne, j'utilise un linked Server ...
    Je vais regarder çà d'un peu plus près

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Il me semble en sus que SQL Server CE n'implémente pas les triggers !
    Ni triggers, ni proc stoc, mais il a parlé de Sql Server Express, pas de Sql Server CE.

    En revanche, la présnece de Sql Server Express semble antinomique avec une application sur PDA; d'où ma demande de précisions, car c'est un peu nébuleux.

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/04/2015, 14h44
  2. [AC-2007] Affecter un contrôle sur chaque enregistrement d'une table
    Par spookyz dans le forum IHM
    Réponses: 2
    Dernier message: 08/08/2014, 20h38
  3. Réponses: 6
    Dernier message: 11/08/2010, 15h50
  4. Réponses: 2
    Dernier message: 04/07/2008, 20h11
  5. Récupérer chaque ligne de type enregistrement dans une table
    Par atporfi dans le forum Administration
    Réponses: 2
    Dernier message: 02/04/2008, 19h12

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