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 :

[procédure stockée][SQL server]Extraction, réinsertion


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 21
    Points : 14
    Points
    14
    Par défaut [procédure stockée][SQL server]Extraction, réinsertion
    Bonjour,

    Je désire faire une procédure stockée afin de récupérer certaines données d'une table et les réinserer dans une autre table avec une propriété en plus.

    J'ai testé cela mais ça ne marche pas
    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
    25
     
    IF EXISTS (TABLE ETATSANTE)
     
    DROP TABLE ETATSANTE
     
    GO
     
    CREATE PROCEDURE EtatSante
    AS
    CREATE TABLE ETATSANTE
    (
    uccleunik integer,
    l0cleunik integer,
    parentcleunik integer,
    etatpc integer
    )
     
    SELECT uc.uccleunik, uc.l0cleunik, parentcleunik INTO ETATSANTE (uc.uccleunik, uc.l0cleunik, parentcleunik, '1')
    FROM uc, localisa where uc.ram > 128 and uc.l0cleunik = localisa.l0cleunik
     
    SELECT uc.uccleunik, uc.l0cleunik, parentcleunik INTO ETATSANTE (uc.uccleunik, uc.l0cleunik, parentcleunik, '2')
    FROM uc, localisa where uc.ram <64  and uc.l0cleunik = localisa.l0cleunik
     
    SELECT uc.uccleunik, uc.l0cleunik, parentcleunik INTO ETATSANTE (uc.uccleunik, uc.l0cleunik, parentcleunik, '3')
    FROM uc, localisa where uc.ram < 128 and uc.ram > 64 and uc.l0cleunik = localisa.l0cleunik

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    mais ça ne marche pas
    Tu ne pourrais pas être plus précis, est-ce que cela signifie
    a/Tu as une erreur de syntaxe.Si oui quelle est le message d'erreur
    b/Le résultat n'est pas celui attendu. Si oui quel est le résultat obtenu et quel est le résultat attendu.
    c/ autre cas.

    Sinon outre les problèmes de syntaxe évidents, ton code ne parait pas cohérent.
    Tu supprimes la table Etat_sante si elle n'existe pas avant de créer ta ps.
    Dans ta PS, tu crée une table Etat_sante, ce qui signifie qu'à la première exécution de ta PS tu crées la table, et à la deuxieme comme elle existe déjà, tu dois avoir un joli message d'erreur.

    Donc déjà choisit soit tu fais le drop et la création dans la PS soit tu les faits à l'exterieur, et dans la PS, tu supprimes éventuellement les données existentes.

    Dernier point, personnellement j'utiliserait un insert into select plutot qu'une select into.Ce qui donnerait dans le premier cas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    insert into ETATSANTE
    (uccleunik ,l0cleunik ,parentcleunik ,etatpc )
    SELECT uc.uccleunik, uc.l0cleunik, parentcleunik,'1'
    FROM uc inner join localisa on uc.l0cleunik = localisa.l0cleunik 
    where uc.ram > 128
    A+
    Soazig

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup, ça fonctionne, le problème était sur l'utilisation du insert into select (que je ne connaissais pas) à la place du select into. Désolé pour l'imprecision de l'erreur sql ^^

    Pour le problème du drop et de la création je vois pas trop ce que ça change puisque je veux que la procédure détruise à chaque fois la table afin de la recréer et d'insérer les nouveaux enregistrements, je crois bien que c'est ce que fait mon algo, à moins que je me trompe^^

    Encore merci!

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    à moins que je me trompe
    je dirais que tu te trompes, as-tu essayé d'exécuter ta PS deux fois de suite. Après l'avoir créé par ton script qu'une seule fois.

    Ou alors ton script n'est pas le script réel, car je serais curieuse de voir comment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF EXISTS (TABLE ETATSANTE) 
     
    DROP TABLE ETATSANTE
    Ne provoque pas d'erreur à l'execution.
    Chez moi ca plante!
    Serveur*: Msg 156, Niveau 15, État 1, Ligne 1
    Incorrect syntax near the keyword 'TABLE'.
    A+
    Soazig

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Vi ça plante^^

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

Discussions similaires

  1. Procédures stockées SQL Server
    Par alex2003 dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/03/2008, 18h55
  2. Problème LIKE Procédure stocké SQL Server 2000
    Par Pilhole dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 18/02/2008, 09h24
  3. Procédures stockées SQL Server, récupération sous Delphi
    Par rophi dans le forum Bases de données
    Réponses: 10
    Dernier message: 03/12/2007, 14h48
  4. Réponses: 1
    Dernier message: 04/03/2007, 15h40
  5. Procédures stockées SQL Server compatibles avec MySQL ?
    Par Nen'S dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 24/01/2006, 19h18

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