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

Développement SQL Server Discussion :

This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expres


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 58
    Points : 50
    Points
    50
    Par défaut This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expres
    Bonjour,
    Pourquoi lorsque je lance la requête suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE Temp_Stock
    SET
    StockDate = (
    		SELECT  REPLACE(StockDate, '-', '/')
    		FROM Temp_Stock
    		WHERE StockDate IS NOT NULL)

    j'ai le message suivant :

    This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expres
    Merci.

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 23
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    l'opérateur = attend une valeur unique or votre sous requête retourne un jeu de données.
    Vous pouvez ajouter TOP(1) dans votre clause SELECT afin de retourner une seule valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE Temp_Stock
    SET
    StockDate = (
    		SELECT  TOP(1) REPLACE(StockDate, '-', '/')
    		FROM Temp_Stock
    		WHERE StockDate IS NOT NULL)
    Êtes-vous sur que cette requête fait bien ce que vous attendez d'elle ?
    Vous modifiez la valeur de la colonne StockDate pour chaque ligne de la table en leur assignant la 1ère valeur StockDate non null qui passe entre les mains de l'optimiseur. Valeur StockDate pour laquelle vous remplacez un caractère par un autre.
    Toutes les lignes de votre table auront la même valeur StockDate. Et si il existe plusieurs valeurs StockDate non null dans la table Temp_Stock, vous n'aurez aucune garanties que ce soit la valeurs que vous souhaitez assigner qui le sera.

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    +1 avec la réponse précédente (sauf pour le TOP 1).

    Et j'ajouterais que pour stocker une date, on utilise le type DATE ou DATETIME2 si on a besoin de l'heure (ou datetime jusqu'à la version 2005) et pas pas une chaîne de caractère comme cela semble être le cas.
    Kropernic

Discussions similaires

  1. An attempt was made to insert a node where it is not permitted.
    Par doudou7777 dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 05/03/2014, 15h34
  2. Binaire : 'Operation Not Permited'
    Par Quarko dans le forum Applications et environnements graphiques
    Réponses: 9
    Dernier message: 12/11/2012, 11h30
  3. Réponses: 2
    Dernier message: 11/03/2010, 18h58
  4. Réponses: 1
    Dernier message: 09/08/2008, 14h58
  5. chmod Operation not permited
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 14/08/2007, 22h24

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