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 :

Index unique non unique sur une vue [2016]


Sujet :

Développement SQL Server

  1. #1
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut Index unique non unique sur une vue
    Bonjour,

    J'ai créé la vue suivante :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    create view onisr.departement (code, code_insee, code_region, nom)
    with schemabinding
    as
    select case dep.code 
    			when '2A' then '201' 
    			when '2B' then '202' 
    			else left(concat(dep.code, '0'), 3) 
    		end,
    		dep.code,
    		dep.code_region,
    		dep.nom
    from insee.departement dep

    La requête suivante ne retourne aucune ligne :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select code, count(*)
    from onisr.departement 
    group by code
    having count(*) <> 1

    Et pourtant, l'instruction suivante me retourne une erreur !
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    create unique index uk_departement on onisr.departement(code)
    Msg*1940, Niveau*16, État*1, Ligne*1
    Impossible de créer index sur la vue 'onisr.departement'. L'index cluster n'est pas unique.
    Comme est-ce possible ?

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour.

    Il est vrai que le message d'erreur est un peu trompeur.
    Mais avant de pouvoir créer un index non cluster, il faut un index cluster sur la vue.

    Il faut donc spécifier qu'il s'agit d'un index cluster (ou en créer un autre avant)

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Il est vrai que le message d'erreur est un peu trompeur.
    C'est vrai, le message tel que indiqué en français est trompeur.

    Il s'agit vraisemblablement d'un problème de traduction, en français, du message. Parce que le même message en anglais se présente comme suit :
    Msg 1940, Level 16, State 1, Line 8
    Cannot create index on view 'onisr.departement'. It does not have a unique clustered index.
    Ce que l'on peut traduire (ou retraduire !) comme suit :
    Impossible de créer un index sur la vue. Celle-ci n'a pas d'index unique organisé en cluster.
    Et là le message serait moins ambiguë et donc plus clair. Je soupçonne un problème de traduction des messages.

    A+

  4. #4
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Ah oui c'est sûr qu'en anglais c'est plus lisible...

    Entre les traductions SMS-like de Windows 10 Insider et les traductions Google-trad-like de SQL Server, Microsoft est franchement pas au top en ce moment...

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

Discussions similaires

  1. Création d'index sur une vue
    Par StringBuilder dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/09/2014, 09h25
  2. [10g] Index non utilisé sur une base
    Par Le-DOC dans le forum SQL
    Réponses: 26
    Dernier message: 26/09/2013, 08h33
  3. Requête sur une vue indexée
    Par VladTepes dans le forum Développement
    Réponses: 0
    Dernier message: 10/08/2010, 17h37
  4. disable un unique radio button sur une liste de plusieurs
    Par jamesleouf dans le forum Struts 1
    Réponses: 5
    Dernier message: 15/04/2010, 10h08
  5. delete sur une vue: rule
    Par Bouboubou dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 18/05/2004, 18h58

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