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 :

Copier des champs d'un enreistrement à un autre dans la même table


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 241
    Points : 83
    Points
    83
    Par défaut Copier des champs d'un enreistrement à un autre dans la même table
    Bonjour, voila, tout est dans le titre, j'ai deux enregistrements :

    Produit1 N°, Nom, Site, Adresse
    Produit2 N°, Nom, Site, Adresse

    je voudrais copier les données du produit1 vers le produit2. Je fais cela dans une procédure stockée ayant comme paramètre le N° de chacun de mes produits mais cela marche mal..

    Ya t'il une fonction qui permette de réalise cela ?

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut procedure stockee.
    Je ne connais pas de fonction specifique.

    Je te propose une procedure stockee
    avec comme parametre d'entree l'id de la source, et l'id de la cible.
    tu stockes dans des variables les attributs de la source et tu procede à un update de la cible.

    je pense que tu devrais plutôt essayer de savoir pourquoi ta procedure marche mal...

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Points : 84
    Points
    84
    Par défaut
    Qu'est ce que tu entends par ca marche mal?
    Ca te renvoie une erreur ou ca ne fait pas l'opération à tous les coups?

    Tu as le code de la procédure que tu as déjà écrit?

  4. #4
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 241
    Points : 83
    Points
    83
    Par défaut
    En fait l'erreur est que la copie ne se fait pas mais le produit de destination est effacé !

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    ALTER Procedure [dbo].[SNSTechNet_SavCopyProduit]
    (
    	@Produit1 nvarchar(50),
    	@Produit2 nvarchar(50)
    )
    AS
    DECLARE
     
    	@ID						int,
    	@Type           		nvarchar(50),       
    	@Version     			nvarchar(50),       
    	@VersionRelease			nvarchar(50),
    	@DateRelease			nvarchar(50),       
    	@Licence				nvarchar(50),
    	@AdresseIP				nvarchar(50),	
    	@ProduitLogin			nvarchar(50),
    	@MotDePasse				nvarchar(50),  
    	@RaccourciHTML			nvarchar(50),       
    	@Memo					nvarchar(500),       
    	@Installe				nvarchar(50),
    	@RapportSurveillance	bit
     
     
    Select * FROM SNSTechNet_Produit WHERE ProduitNumeroSerie = @Produit1
     
    UPDATE SNSTechNet_Produit SET 
     
    				ProduitVersion			= @Version     		,     
    				ProduitVersionRelease	= @VersionRelease	,
    				ProduitDateRelease		= @DateRelease	,  	    
    				ProduitLicence			= @Licence		,
    				ProduitAdresseIP		= @AdresseIP		,				
    				ProduitLogin			= @ProduitLogin	,
    				ProduitMotDePasse		= @MotDePasse	,   
    				ProduitRaccourciHTML	= @RaccourciHTML	,   
    				ProduitMemo				= @Memo       
     
    WHERE ProduitNumeroSerie = @Produit2

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Points : 84
    Points
    84
    Par défaut
    Je ne vois pas où tu remplis tes variables que tu as déclaré?
    D'ailleurs sont elles vraiment necessaires?

    Tu pourrais faire simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ALTER Procedure [dbo].[SNSTechNet_SavCopyProduit]
    (
    	@Produit1 nvarchar(50),
    	@Produit2 nvarchar(50)
    )
    AS
     
    UPDATE SNSTechNet_Produit 
    SET  ProduitVersion = (SELECT ProduitVersion FROM SNSTechNet_Produit 
    WHERE ProduitNumeroSerie = @Produit1)   etc...     
    WHERE ProduitNumeroSerie = @Produit2

  6. #6
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 241
    Points : 83
    Points
    83
    Par défaut
    Ce n'est pas faux, pourquoi s'embêter ... je vais tester cela !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/09/2013, 15h42
  2. [phpMyAdmin] copier un champ vers un autre dans la même table
    Par mtgt_nz dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 20/07/2013, 08h11
  3. Décalage des champs à l'écriture de deux sources dans un même fichier .csv
    Par justinedr71 dans le forum Développement de jobs
    Réponses: 8
    Dernier message: 27/07/2011, 18h09
  4. Réponses: 2
    Dernier message: 25/06/2010, 18h30
  5. Copier une colonne vers une autre dans la même table
    Par Thalys dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/09/2008, 14h29

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