Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1663 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL Server][RESOLU] Mise à jour de base de donnée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL Server][RESOLU] Mise à jour de base de donnée

n°1506259
Lemminkain​en
Chantre de la lyre
Posté le 23-01-2007 à 11:42:21  profilanswer
 

Bonjour,
 
Je vous expose mon problème.
 
J'ai une table X, sur laquelle je fais un BCP (pour exporter ma table sous un fichier texte).
 

Code :
  1. Microsoft.VisualBasic.Shell("bcp toto..client out C:\DB\Client.txt -w -T -S toto\sqlexpress


 
J'ai une table Temp sur laquelle je fais un delete :

Code :
  1. DELETE FROM Temp


 
Et sur laquelle j'importe la table X :

Code :
  1. BULK INSERT Temp FROM 'C:\DB\Client.txt' with (CODEPAGE = 'RAW')


 
J'ai une troisième table Y, qui elle va recevoir les informations de la table TEMP.
 
Si je fais un insert into pour la première fois, il n'y a pas de soucis, la table Y va avoir les informations de la table Temp.  
Le problème est lorsque de nouvelles informations sont incrites sur la tables Temp. J'imagine que vous le voyez déjà : je ne peux pas (et c'est logique) créer deux fois des valeurs déjà existantes. J'ai pensé à créer un ID mais le problème, c'est qu'en faite il n'y a pas qu'une table x mais plusieurs avec des valeurs bien differentes.  
 
Pour l'update il n'y a aucuns soucis, mais lorsque de nouvelles valeurs vont rentrées, je ne sais pas quelle condition appliquer à mon insert.  
 
Merci


Message édité par Lemminkainen le 23-01-2007 à 11:57:45

---------------
Que vois-tu quand tu fermes les yeux ?
mood
Publicité
Posté le 23-01-2007 à 11:42:21  profilanswer
 

n°1506266
MagicBuzz
Posté le 23-01-2007 à 11:50:10  profilanswer
 

Ca changera rien, mais remplace ton DELETE par un TRUNCATE : plus rapide.
 
Soit plus clair pour le reste.
 
A la base, je dirais de faire un truc du genre :
 

insert into y (id, val) from (select id, val from x where not exists (select null from y where y.id = x.id))

Message cité 1 fois
Message édité par MagicBuzz le 23-01-2007 à 11:50:25
n°1506268
Lemminkain​en
Chantre de la lyre
Posté le 23-01-2007 à 11:52:28  profilanswer
 

MagicBuzz a écrit :

Ca changera rien, mais remplace ton DELETE par un TRUNCATE : plus rapide.
 
Soit plus clair pour le reste.
 
A la base, je dirais de faire un truc du genre :
 

insert into y (id, val) from (select id, val from x where not exists (select null from y where y.id = x.id))



Merci beaucoup pour le DELETE. :jap:
 
Pour le reste, ta fonction repond parfaitement à ce que je veux. J'ai déjà essayé le NO Exist, mais surement avec une mauvaise syntaxe. Je vais essayer ça tout de suite. :jap:
 
Merci beaucoup.


---------------
Que vois-tu quand tu fermes les yeux ?
n°1506270
Lemminkain​en
Chantre de la lyre
Posté le 23-01-2007 à 11:57:24  profilanswer
 

Lemminkainen a écrit :

Merci beaucoup pour le DELETE. :jap:
 
Pour le reste, ta fonction repond parfaitement à ce que je veux. J'ai déjà essayé le NO Exist, mais surement avec une mauvaise syntaxe. Je vais essayer ça tout de suite. :jap:
 
Merci beaucoup.


 
Ton from est en trop, voila la requête qui marche :  
 

Code :
  1. insert into y (id, val) select id, val from x where not exists (select null from y where y.id = x.id)


 
Merci beaucoup.


---------------
Que vois-tu quand tu fermes les yeux ?
n°1506274
MagicBuzz
Posté le 23-01-2007 à 12:01:31  profilanswer
 

ha oui en effet, y'a pas de from dans le insert :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL Server][RESOLU] Mise à jour de base de donnée

 

Sujets relatifs
[Résolu] [MySQL] Problème nombre commençant par zéro[Résolu] Ifstream et commentaires
[RESOLU]Checkbox[xsl] sélection de noeuds selon leurs attrituts [Résolu]
Changer de phrase chaque jour (avec BD)aide sur une base de donnée !
[Resolu] jouer son au bout de t secondesencodage et mise en ligne de video
[PHP & XMLReader] Ne passe pas dans les noeuds Attributs [Resolu] 
Plus de sujets relatifs à : [SQL Server][RESOLU] Mise à jour de base de donnée


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR