IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Syntaxe incorrecte sur delete (supprimer doublon)


Sujet :

MS SQL Server

  1. #1
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut Syntaxe incorrecte sur delete (supprimer doublon)
    Bonjour,

    Je tente d'éradiquer les doublons d'une table, j'ai une erreur dont je ne trouve pas la cause.

    L'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg 102, Level 15, State 1, Line 2
    Incorrect syntax near 'T'.
    La requête tapée dans sql server 2005 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DELETE
    FROM  download T
    WHERE  T.id_bobineau < ANY (SELECT id_bobineau
                        FROM download T2
                        WHERE T.id_bobineau <> T2.id_bobineau
    						AND T.num_serie = T2.num_serie)
    La table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    USE [TABLE]
    GO
     
    /****** Object:  Table [dbo].[DOWNLOAD]    Script Date: 04/01/2010 18:47:58 ******/
    IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DOWNLOAD]') AND type in (N'U'))
    DROP TABLE [dbo].[DOWNLOAD]
    GO
     
    USE [TABLE]
    GO
     
    /****** Object:  Table [dbo].[DOWNLOAD]    Script Date: 04/01/2010 18:47:59 ******/
    SET ANSI_NULLS ON
    GO
     
    SET QUOTED_IDENTIFIER ON
    GO
     
    SET ANSI_PADDING ON
    GO
     
    CREATE TABLE [dbo].[DOWNLOAD](
    	[id_bobineau] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
    	[Ref] [nvarchar](255) NULL,
    	[OLS] [nvarchar](255) NULL,
    	[Date_Fab] [nvarchar](255) NULL,
    	[NumLivr] [nvarchar](255) NULL,
    	[Date_Livr] [nvarchar](255) NULL,
    	[CDT] [nvarchar](255) NULL,
    	[Boite] [nvarchar](255) NULL,
    	[Num_Serie] [nvarchar](255) NULL,
    	[SAM] [nvarchar](255) NULL,
    	[Process] [nvarchar](255) NULL,
    	[Encarteur] [nvarchar](255) NULL,
    	[Module] [nvarchar](255) NULL,
    	[Wafer] [nvarchar](255) NULL,
    	[date_heure_download] [datetime] NULL,
    	[nom_avant] [varchar](50) NULL,
    	[nom_apres] [varchar](50) NULL,
    	[md5] [varchar](50) NULL,
     CONSTRAINT [PK_BOBINEAU2] PRIMARY KEY CLUSTERED 
    (
    	[id_bobineau] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
     
    GO
     
    SET ANSI_PADDING OFF
    GO
    Je ne vois pas pourquoi l'alias 'T' poserait problème ??

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Le T que vous mettez sur la ligne 2 de votre script pose problème parce que toutes les requêtes de modification de données ne portent que sur une seule table.
    Vous pouvez réécrire votre requête comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DELETE	FROM download
    FROM	download AS T
    WHERE	T.id_bobineau < ANY (SELECT id_bobineau
                        FROM download T2
                        WHERE T.id_bobineau <> T2.id_bobineau
    						AND T.num_serie = T2.num_serie)
    @++

  3. #3
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Merci pour votre réponse.

    Désolé le problème avait déjà été soulevé ici : http://www.developpez.net/forums/d33...lete-doublons/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. syntaxe incorrecte sur un batch
    Par Senji dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 21/09/2008, 15h13
  2. supprimer doublons sur 40000 lignes
    Par eillon dans le forum Excel
    Réponses: 28
    Dernier message: 25/10/2007, 13h33
  3. Réponses: 2
    Dernier message: 11/10/2007, 18h47
  4. syntaxe de commande incorrecte sur un "if defined"
    Par Nowoday dans le forum Windows
    Réponses: 2
    Dernier message: 01/07/2007, 17h36
  5. Supprimer doublons sur 3 colonnes?
    Par pegase33 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/09/2006, 12h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo