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 :

Impossible de créer une vue indexée


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Par défaut Impossible de créer une vue indexée
    Bonjour,

    Je n'arrive pas à créer une vue indexée, c'est une vue toute bête mais SQL server ne veut rien savoir. Qu'est ce qui ne va pas?
    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
    ALTER VIEW [dbo].[V_DWH_REP_DAT] 
    WITH SCHEMABINDING
    AS
    	SELECT
    		COD_EXT AS LABEL,
    		LIB AS DATE
    	FROM
    		dbo.DWH_LIB
    	WHERE
    		COD_NAME = 'D_REPORTING'
    	AND LANG = 'FR'
    GO
     
     
    create index IX_V_DWH_REP_DAT ON V_DWH_REP_DAT(LABEL) INCLUDE (DATE)
    J'obtiens une erreur là :
    Msg 1940, Level 16, State 1, Line 1
    Cannot create index on view 'V_DWH_REP_DAT'. It does not have a unique clustered index.

    Qu'est ce qui ne va pas? J'ai cherché partout dans la doc, j'ai rien trouvé.

    Petite précision la table DWH_LIB a comme PK : COD_NAME, COD_EXT, LANG.

  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 : 44
    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
    Par défaut
    Bonjour,

    Vous ne pouvez pas créer un index non-cluster sur une vue si celle-ci ne dispose pas au préalable d'une index cluster.

    Supposons que votre COD_EXT est unique.
    Vous pouvez alors écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE UNIQUE CLUSTERED INDEX IX_V_DWH_REP_DAT ON V_DWH_REP_DAT(LABEL)
    @++

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Bonjour,

    Vous ne pouvez pas créer un index non-cluster sur une vue si celle-ci ne dispose pas au préalable d'une index cluster.
    Merci. J'ai réussi à créer un index mais ça n'a pas résolu mon autre problème. Je vais créer un nouveau post.

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

Discussions similaires

  1. Impossible de créer une vue avec un champ spatial
    Par M Roncheau dans le forum SQL
    Réponses: 2
    Dernier message: 24/08/2007, 09h11
  2. Réponses: 1
    Dernier message: 30/12/2005, 17h14
  3. Créer une vue avec des requêtes UNION ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/04/2005, 12h37
  4. Réponses: 17
    Dernier message: 03/12/2004, 14h33
  5. Créer une vue pour trier une requete UNION ?
    Par Etienne Bar dans le forum SQL
    Réponses: 3
    Dernier message: 03/01/2003, 20h22

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