j'ai un petit probl=E8me avec SQL SERVEUR 2005 SP2
Avant tout, voici ma d=E9marche:
Je poss=E8de une table "clients" de 300000 entr=E9es sur un serveur
distant. Cette table contient des doublons que je dois traiter
(supprimer un des membres de chaque doublon).
J'ai =E9galement un serveur sur ma machine sur laquelle je vais isoler
les entr=E9es =E0 supprimer.
Je cr=E9er un serveur li=E9 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=E9ro de client pr=E9sent deux fois)
J'ai ma table doulons depuis laquelle j'isole les membre de doublons =E0
supprimer dans une table A_SUPPR. dont je vous passe la requ=EAte
MON PROBLEME intervient lors de la suppression. J'ai tent=E9 la
supression pas la vue de la table Vclient de la table clients en
saisissant la requ=EAte suivante :
DELETE VCLIENT
FROM A_SUPPR
WHERE VCLIENT.NUMCLIENT =3D A_SUPPR.NUMCLIENT
aucun message d'erreur n'aparait et m=EAme mieux, il me donne le nombre
de lignes affect=E9s que j'attendais. Sur 1000 lignes =E0 supprimer, apr=E8s=
v=E9rification, je suis bien a 299000 lignes dans la table "clients" sur
le serveur.
LE GROS PROBLEME est que 800 de mes lignes =E0 supprimer son encore dans
la table CLIENTS. Ma requ=EAte 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=E8ciser que l'op=E9ration se
d=E9roule correctement en direct sur le serveur.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
On 7 jan, 17:51, Rudi Bruchez <rudi#nospam#at#babaluga.com> wrote:
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
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
On 7 jan, 17:51, Rudi Bruchez <rudi#nospam#at#babaluga.com> wrote:
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
On 7 jan, 17:51, Rudi Bruchez <rudi#nospam#at#babaluga.com> wrote:
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
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
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)
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)
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)