Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/08/2011, 10h48   #1
Membre à l'essai
 
Homme Bilal Asli
Chargé de la Qualité
Inscription : avril 2011
Messages : 29
Détails du profil
Informations personnelles :
Nom : Homme Bilal Asli
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Chargé de la Qualité

Informations forums :
Inscription : avril 2011
Messages : 29
Points : 23
Points : 23
Par défaut Delete d'un select

Bonjour à tous,

J'ai deux tables constituées des mêmes champs:
TMP_Category_Duplicate: contient ~620 lignes
TMP_CATEGORY_A_CREER: contient ~510 lignes
Je voudrais supprimer, dans la table TMP_Category_Duplicate, les lignes de la table TMP_CATEGORY_A_CREER
Code :
1
2
DELETE FROM TMP_Category_Duplicate
WHERE EXISTS (SELECT * FROM TMP_Category_A_CREER)
Lorsque j'effectue ma requête toutes les données de la table TMP_Category_Duplicate sont supprimées.

Merci pour votre attention.
Asli Bilal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 11h03   #2
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Normal vous oubliez le critère de jointure entre vos deux tables!
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 11h11   #3
Membre à l'essai
 
Homme Bilal Asli
Chargé de la Qualité
Inscription : avril 2011
Messages : 29
Détails du profil
Informations personnelles :
Nom : Homme Bilal Asli
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Chargé de la Qualité

Informations forums :
Inscription : avril 2011
Messages : 29
Points : 23
Points : 23
J'ai essayé ceci:
Code :
1
2
3
4
5
DELETE FROM TMP_Category_Duplicate TMP
INNER JOIN TMP_Category_A_CREER C ON TMP.RecId = C.RecId
WHERE (Category, CreatedBy, CreatedDateTime, IncidentType, IncidentType_Valid,
		LastModBy, LastModDateTime, RecId, PublishCategoryToWeb, Team)
		IN (SELECT * FROM TMP_Category_A_CREER)
Mais apparemment la syntaxe de INNER JOIN n'est pas supportée ici?
Asli Bilal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 11h37   #4
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 848
Points : 6 848
Bonjour,

Code :
1
2
3
4
DELETE FROM TMP_Category_Duplicate 
FROM TMP_Category_Duplicate TMP
INNER JOIN TMP_Category_A_CREER C ON TMP.RecId = C.RecId
WHERE ....
Il faudra revoir la clause WHERE qui n'est pas correcte :

Code :
1
2
3
WHERE (Category, CreatedBy, CreatedDateTime, IncidentType, IncidentType_Valid,
		LastModBy, LastModDateTime, RecId, PublishCategoryToWeb, Team)
		IN (SELECT * FROM TMP_Category_A_CREER)

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 13h42   #5
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Une méthode:
Code :
1
2
3
4
5
 
DELETE TMP 
FROM TMP_Category_Duplicate TMP
   INNER JOIN TMP_Category_A_CREER C 
      ON TMP.RecId = C.RecId
Une deuxième:
Code :
1
2
3
4
5
 
DELETE FROM TMP_Category_Duplicate
WHERE EXISTS(SELECT *
                     FROM IncidentType_Valid C
                     WHERE C.RecId= TMP_Category_Duplicate.recID)
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 14h42   #6
Membre à l'essai
 
Homme Bilal Asli
Chargé de la Qualité
Inscription : avril 2011
Messages : 29
Détails du profil
Informations personnelles :
Nom : Homme Bilal Asli
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Chargé de la Qualité

Informations forums :
Inscription : avril 2011
Messages : 29
Points : 23
Points : 23
Cool merci à vous deux!
Asli Bilal est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h45.


 
 
 
 
Partenaires

Hébergement Web