SUPPRESSION ALEATOIRE

Le
Vincent
Bonjour,

j'ai un petit problème avec SQL SERVEUR 2005 SP2

Avant tout, voici ma démarche:

Je possède une table "clients" de 300000 entrées sur un serveur
distant. Cette table contient des doublons que je dois traiter
(supprimer un des membres de chaque doublon).

J'ai également un serveur sur ma machine sur laquelle je vais isoler
les entrées à supprimer.

Je créer un serveur lié du serveur distant puis je vais une vue de la
table client en local sur ma machine :
CREATE VIEW VCLIENT AS
SELECT * FROM [SERVEUR].[SCHEMA].[PROPRIETAIRE].CLIENTS

J'isole mes mes doublons

SELECT *
INTO DOUBLONS
FROM VCLIENT
WHERE .( numéro de client présent deux fois)

J'ai ma table doulons depuis laquelle j'isole les membre de doublons à
supprimer dans une table A_SUPPR. dont je vous passe la requête

MON PROBLEME intervient lors de la suppression. J'ai tenté la
supression pas la vue de la table Vclient de la table clients en
saisissant la requête suivante :

DELETE VCLIENT
FROM A_SUPPR
WHERE VCLIENT.NUMCLIENT = A_SUPPR.NUMCLIENT

aucun message d'erreur n'aparait et même mieux, il me donne le nombre
de lignes affectés que j'attendais. Sur 1000 lignes à supprimer, après=

vérification, je suis bien a 299000 lignes dans la table "clients" sur
le serveur.

LE GROS PROBLEME est que 800 de mes lignes à supprimer son encore dans
la table CLIENTS. Ma requête ma traiter que 200 doublons et supprimer
800 lignes n'ayant aucun rapport avec les doublons.


Si quelqu'un a une explication ou peut m'orrienter, je suis preneur
car je n'y comprend plus rien. Je tiens a prèciser que l'opération se
déroule correctement en direct sur le serveur.

Cdt
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Rudi Bruchez
Le #11884191
Bonjour,

Vincent a écrit:
LE GROS PROBLEME est que 800 de mes lignes à supprimer son encore dans
la table CLIENTS. Ma requête ma traiter que 200 doublons et supprimer
800 lignes n'ayant aucun rapport avec les doublons.



Essaie plutôt ceci :

DELETE VCLIENT
FROM A_SUPPR s
JOIN VCLIENT c ON c.NUMCLIENT = s.NUMCLIENT

--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT, MVP SQL Server
http://www.babaluga.com/
http://rudi.developpez.com/
Vincent
Le #11884121
On 7 jan, 17:51, Rudi Bruchez
Bonjour,

Vincent a écrit:

> LE GROS PROBLEME est que 800 de mes lignes à supprimer son encore dans
> la table CLIENTS. Ma requête ma traiter que 200 doublons et supprimer
> 800 lignes n'ayant aucun rapport avec les doublons.

Essaie plutôt ceci :

DELETE VCLIENT
FROM A_SUPPR s
JOIN VCLIENT c ON c.NUMCLIENT = s.NUMCLIENT

--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT, MVP SQL Serverhttp://www.babalu ga.com/http://rudi.developpez.com/





Il semblerait qu'il n'y ait aucun problème avec ta requête
je ne comprends toujours pas pourquois mon filtre ne fonctionne pas

Merci
Rudi Bruchez
Le #11884091
Bonjour,

Vincent a écrit:

Il semblerait qu'il n'y ait aucun problème avec ta requête
je ne comprends toujours pas pourquois mon filtre ne fonctionne pas



Dans la requête originale, tu ne précises pas le lien entre les tables.
Je ne sais pas ce que donne ta syntaxe, qqch de plus ou moins aléatoire
? Si tu veux utiliser une syntaxe ansi, tu peux utiliser une
sous-requête avec un IN

DELETE VCLIENT
WHERE NUMCLIENT IN (SELECT NUMCLIENT FROM A_SUPPR)

--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT, MVP SQL Server
http://www.babaluga.com/
http://rudi.developpez.com/
Publicité
Poster une réponse
Anonyme