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 :

archivage de données


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut archivage de données
    Bonjour tout le monde,

    violà je travaille sur un outil crm (saratoga) , et je cherche à archiver certains enregistrements de la BD.Pour celà j'ai crée une BD vide , et j'y ai dupliqué les tables desquelles je vais migrer les enregistrements.Mon problème est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO Migration.MIGPROSPECTION
    SELECT *
    FROM recette_670.prospection
    WHERE YEAR(DATEFIN) < 1960
    "MIGPROSPECTION" est la table cible et jumelle de la table prospection."Migration" est le nom de la BD vide que j'ai crée; "recette_670"est la BD source.

    Ce code ne répond pas.Peut-on m'aider , ou me proposer un type de requête pour la même fonction ?
    Merci d'avance.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    La requête semble bonne, pour autant que les deux BDD soient bien sûr sur le même serveur.

    Que signifie :
    Citation Envoyé par doudou8mc Voir le message
    Ce code ne répond pas.
    Message d'erreur ?
    Aucune insertion ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut comprends pas l'erreur
    Même en précisant le nom des colonnes apres le "select" et le "insert" ça ne donne rien.

    ce que j'entends par "ce code ne répond pas" c'est le message suivant après exécution:

    Serveur*: Msg 208, Niveau 16, État 1, Ligne 1
    'Migration.MIGPROSPECTION' : nom d'objet incorrect.
    Serveur*: Msg 208, Niveau 16, État 1, Ligne 1
    'recette_670.PROSPECTION' : nom d'objet incorrect.
    Je précise que les deux tables sont exatmemnt les mêmes, sauf que "MIGPROSPECTION" est sur la BD "Migration" et "PROSPECTION" dans la BD "recette_670".Ces BD sont stockées sur le même serveur.

    merci

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Le CRM utilise quel SGBD ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut re
    le sgbd est sql server 2005

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Il faut ajouter le propriétaire de la table

    Le "vrai" nom de la table distante est : "Migration.dbo.MIGPROSPECTION"

    dbo est le nom du propriétaire le plus vraisemblable.

    On peut essayer en se passant du proprio avec la syntaxe : "Migration..MIGPROSPECTION" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO Migration..MIGPROSPECTION
    SELECT *
    FROM recette_670..prospection
    WHERE YEAR(DATEFIN) < 1960
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut nouveau message d'erreur
    J'ai essayé la requête .

    nouveau message d'erreur:

    "Serveur*: Msg 8152, Niveau 16, État 9, Ligne 1
    Les données chaîne ou binaires seront tronquées.
    L'instruction a été arrêtée."
    Pourtant les deux tables sont idendiques en termes de structure et de contraintes structurelles.
    Je ne comprend pas à quoi est dû ce message.Est ce qu'il peut être lié aux index ?
    On peut m'aider?

    Merci

  8. #8
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Il doit tout de même y avoir une différence.
    Ce message est typique d'une tentative d'insertion d'une chaîne de caractères
    dans un champ texte trop petit pour elle.

    Comment as-tu construit la table [MIGPROSPECTION] ?
    à la main ou avec un script généré à partir de [prospection] depuis Entreprise manager ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    j'ai recopié le script de la table prospection ;

  10. #10
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Il faudrait que tu nous montre le script de chaque table

    Sinon, pour aller vite, tu peux aussi faire une exportation directe de la table prospection dans la base Migration.
    Dans entreprise manager, en faisant un clic droit sur la table, tu as la possibilité d'exporter toute la table dans la base de ton choix.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    Voilà le script; je ne peux pas exporter la table pour le moment , désolé.
    Merci
    Fichiers attachés Fichiers attachés

  12. #12
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Le script est bon. Comme il s'agit d'une table d'archive, on va revenir sur quelque chose de plus simple.

    Tu peux tout simplement lancer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USE Migration
    DROP TABLE MIGPROSPECTION
    SELECT * INTO MIGPROSPECTION FROM recette_670..PROSPECTION
    1. Utilisation de la base Migration
    2. Suppression préalable de la table MIGPROSPECTION déjà existante (sinon conflit avec SELECT * INTO)
    3. Copie des données dans une table MIGPROSPECTION toute neuve créée automatiquement par le SELECT * INTO


    Cela ne crée pas les index mais tu peux toujours les ajouter ultérieurement au besoin
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    oui ça marche enfin.Merci beaucoup.
    Au fait , une petite question.Quelle est la différence entre "tables système" et "tables utilisateur"?

  14. #14
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    Les tables systèmes permettent de visualiser des informations relatives au système comme la configuration du serveur, l'état de fragmentation des index, le catalogue système etc ... On passe par des vues systèmes maintenant sur les versions récentes de SQL Server

    Les tables utilisateurs sont celles créées pour une application ou autre besoin par un développeur, architecte etc ....

    ++

  15. #15
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    les tables systèmes sont créées automatiquement par SQL Server pour contenir les informations de structures de la base (principalement).
    Par exemple la table sysobjects va contenir le nom des tables qui se trouvent dans la base en cours.

    Une table utilisateur est créée par ... l'utilisateur
    par exemple la table MIGPROSPECTION
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    Merci pour vos réponses
    Au sujet de l'archivage , quelqu'un aurait il une méthode à me conseiller.Pour l'instant j'ai prévu de réaliser une procédure qui ds un permier temps alimente les tables cibles (ex:MIGPROSPECTION) ,puis supprimer de la table source(ex:prospections) toutes les lignes qui existent dans la table d'archive.Pour cette dernière instruction je ne sais pas encore comment faire (eh oui je débute);UNE idée ??

    Merci d'avance l'équipe !

  17. #17
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM recette_670..prospection
    WHERE PK_PROSPECT IN (SELECT PK_PROSPECT FROM Migration..MIGPROSPECTION)
    En clair cela veut dire "supprime tous les enregistrements de recette_670..prospection dont la clé primaire se trouve aussi dans la table Migration..MIGPROSPECTION"

    Dans cette sous-requête, il y a la liste des identifiants de MIGPROSPECTION.
    Puisque ces identifiants sont bien dans la table MIGPROSPECTION,
    on peut supprimer les enregistrements correspondants dans la table recette_670..prospection

    L'exécution peut être longue ...

    Je ne saurais trop te recommander de bosser un peu le T-SQL. Je sens que tu vas en avoir besoin
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

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

Discussions similaires

  1. [Xquare] Archivage de données
    Par Zeusviper dans le forum XQUERY/SGBD
    Réponses: 1
    Dernier message: 22/03/2007, 19h23
  2. [10 G] archivage de données
    Par vincent.alyotech dans le forum Oracle
    Réponses: 4
    Dernier message: 14/03/2007, 11h42
  3. Archivage des données automatiques
    Par Claire07 dans le forum Access
    Réponses: 10
    Dernier message: 15/06/2006, 15h08
  4. [10g] Archivage de données par années
    Par Cereal123 dans le forum Oracle
    Réponses: 7
    Dernier message: 24/04/2006, 09h35
  5. Conseil pour un archivage de données
    Par Cerberes dans le forum Oracle
    Réponses: 14
    Dernier message: 07/04/2005, 10h38

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