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

Développement SQL Server Discussion :

avant update Insérer les premiers données dans une table historique


Sujet :

Développement SQL Server

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Par défaut avant update Insérer les premiers données dans une table historique
    Salut;

    Je travail avec Sqlserver2005 et J'ai une table à laquelle je fais la mise à jour ; j’ai besoin d'insérer les données avant update dans une table historique.
    ya une méthode pour faire ça.
    Merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Par défaut
    Tu dois surement parler de la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into table values (colonne1,colonne2,etc...)
    Sinon complète ta demande pour mieux montrer ce que tu cherches à faire

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Par défaut
    Merci

    j'ai une table T1 et table HistoriqueT1 et une gridview en editable mode,
    qui affiche les données de T1 .Quand l'utilisateur modifie une ligne de la grid je veux que les premiers données de cette lignes(avent modification) seront enregistrées dans la table HistoriqueT1.

    J'ai aucune aidée de faire ;montrez moi la piste à suivre merci.

  4. #4
    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 : 43
    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,

    Vous pouvez écrire une procédure stockée à laquelle vous passez en paramètre la valeur de clé primaire identifiant la ligne qui va être modifiée, et les nouvelles données.
    Lorsque la modification est validée par l'utilisateur, insérez dans votre table historique la ligne dont la valeur de clé primaire est celle de votre paramètre, puis réalisez la mise à jour :

    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
    CREATE PROCEDURE maProc
    	@_ID INT,
    	@_maNouvelleDonne VARCHAR(50)
    AS
    BEGIN
    	-- Copie dans la table historique
    	INSERT INTO dbo.maTableHistorique
    	SELECT mesColonnes, GETDATE()
    	FROM dbo.maTableCible
    	WHERE maColonneClePrimaire = @_ID
     
    	-- Mise à jour des données
    	UPDATE dbo.maTableCible
    	SET maColonne = @_maNouvelleDonne
    	WHERE maColonneClePrimaire = @_ID
    END
    @++

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Par défaut
    Merci infiniment elsuket!

    Je vais me documenter sur les procédures stockées pour bien comprendre votre solution ;je débute en sqlserver .
    merci encore.

  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 : 43
    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
    Voici un bon point d'entrée, avec quelques exemples.

    @++

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Par défaut
    Merci elsuket pour le lien;

    En se documentant sur les PS j'ai lu un article sur les triggers.
    est ce la même chose? Est ce que je peux résoudre mon problème aussi en utilisant les triggers? je dis peut être n'importe quoi j'avoue que j'ai pas bien compris ni Triggers ni Procédures stockées.

    Merci.

  8. #8
    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 : 43
    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,

    est ce la même chose?
    Pas tout à fait:

    - Une procédure stockée est une suite d'instructions (affectations, INSERT, UPDATE, DELETE, SELECT) qui peut retourner un ensemble de données ou effectuer seulement des modifications de données, et qui peut accepter et retourner des paramètres fournis à / par l'application appelante.

    - Un trigger est un cas particulier de procédure stockée, qui n'accepte pas de paramètres et qui ne retourne pas d'ensemble de données.
    Il est attaché à une table (et peut être attaché à une base de données ou un serveur sous SQL Server 2005), et se déclenche lors de la survenance d'une événement.
    Lorsqu'un trigger est attaché à une table, il peut se déclencher lorsqu'une commande INSERT, UPDATE ou DELETE survient sur la table, et, tout comme une procédure stockée, exécute une suite d'instructions.

    Est ce que je peux résoudre mon problème aussi en utilisant les triggers?
    J'ai hésité à vous le proposer lors de ma première réponse.

    En espérant vous avoir éclairé,

    @++

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Par défaut
    Bonjour!
    Merci infiniment elsuket
    votre PS marche bien .merci de m'avoir aider.

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

Discussions similaires

  1. [11g] Insérer les données dans une table avec le data control
    Par tchuidjan dans le forum Débuter
    Réponses: 5
    Dernier message: 30/04/2014, 15h41
  2. [MySQL] Ajouter des données dans une table avec la cmd update
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 25/09/2007, 19h54
  3. Insérer données dans une table
    Par latrik dans le forum Windows Forms
    Réponses: 0
    Dernier message: 13/09/2007, 17h00
  4. [SQL] Insérer des données dans une table
    Par wonga dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 01/08/2007, 12h00
  5. Supprimer les premiers 0 dans une chaîne
    Par supersmoos dans le forum Langage
    Réponses: 2
    Dernier message: 11/01/2007, 11h28

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