SUPPRESSION ALEATOIRE

Le
Vincent
Bonjour,

j'ai un petit problme avec SQL SERVEUR 2005 SP2

Avant tout, voici ma dmarche:

Je possde une table "clients" de 300000 entres 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 entres supprimer.

Je crer 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 .( numro de client prsent 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 requte

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 requte suivante :

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

aucun message d'erreur n'aparait et mme mieux, il me donne le nombre
de lignes affects que j'attendais. Sur 1000 lignes supprimer, aprs=

vrification, 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 requte 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 prciser que l'opration se
droule correctement en direct sur le serveur.

Cdt
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