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 :

Créer une vue avec une clé automatique


Sujet :

Développement SQL Server

  1. #1
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut Créer une vue avec une clé automatique
    Bonjour,
    je crée une vue avec une la requete sql suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT  * 			
    FROM [SERVER].[DATABASE].[dbo].[TABLE] table WITH (NOLOCK)
    Comment faire pour ajouter une clé primaire générer automatiquement?

    Merci..

  2. #2
    Membre actif
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Points : 269
    Points
    269
    Par défaut
    Bonjour,
    La notion de contrainte d'intégrité et donc de clé primaire ne peut être présente que sur des tables. Les vues ne stockent pas d'information, il n'est donc pas envisageable d'y définir des contraintes d'intégrité.

  3. #3
    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,

    Une vue et une table sont deux objets différents :

    - Une table contient des données, donc elle a une existence physique
    - Une vue se comporte comme une table mais n'a aucune existence physique : elle ne stocke aucune donnée

    Dès lors la clé que vous recherchez est une des colonnes d'une des tables de la requête spécifiant votre vue.

    D'après le titrre de votre post, n'est-ce pas un compteur ou un rang que vous cherchez ? si c'est le cas et que vous êtes sous SQL Server 2005, ajoutez ROW_NUMBER() à la définition de votre vue

    @++

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Merci messieurs,
    la vue ne peux prendre aucune contrainte alors, même not-null..
    elle n'hérite même pas des propriétés de la table mère, si je comprend bien..

  5. #5
    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
    la vue ne peux prendre aucune contrainte alors, même not-null..
    Non, puisqu'une vue n'est pas une table.

    elle n'hérite même pas des propriétés de la table mère, si je comprend bien..
    Non, pour la même raison

    @++

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    C'est clair maintenant !!

    Merciiiiiii

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Bonjour,

    Une vue et une table sont deux objets différents :

    - Une table contient des données, donc elle a une existence physique
    - Une vue se comporte comme une table mais n'a aucune existence physique : elle ne stocke aucune donnée

    Dès lors la clé que vous recherchez est une des colonnes d'une des tables de la requête spécifiant votre vue.

    D'après le titrre de votre post, n'est-ce pas un compteur ou un rang que vous cherchez ? si c'est le cas et que vous êtes sous SQL Server 2005, ajoutez ROW_NUMBER() à la définition de votre vue

    @++
    Encore une tite question

    J'essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT  ROW_NUMBER() AS ID, * 			
    FROM [SERVER].[DATABASE].[dbo].[TABLE] TABLE WITH (NOLOCK)
    ça ne marche pas, ce n'est pas comme cela quand l'utilise?

  8. #8
    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
    Non, il vous faut spécifier la clause OVER() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ROW_NUMBER() OVER(ORDER BY uneColonne) AS ID, *
    @++

  9. #9
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    super!! ça fonctionne du premier coup en plus!!

    merci!!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. Créer une vue dans une base vers une autre base ?
    Par guidav dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/02/2008, 15h43
  5. Créer une vue avec une image au format postscript *.eps
    Par pobsteta dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 22/11/2007, 15h12

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