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éation d'un champ "auto-incrémenté" dans une vue


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut Création d'un champ "auto-incrémenté" dans une vue
    Bonjour,

    Existe-t-il un moyen de générer dans une vue sql un champ avec des valeurs uniques (type auto-incrément dans une table) ?

    Par exemple en lui disant de m'afficher le numéro de la ligne ou quelque chose dans le genre ...

    Merci !

  2. #2
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Vous pouvez utiliser la fonction row_number() pour réaliser cela.

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Super, merci !

    Ca marche bien mais çà me renvoie un message d'erreur avant de fonctionner (bizarre) :
    La construction ou l'instruction SQL OVER n'est pas prise en charge

    Est-ce que je dois m'en inquiéter (diminution des perf ...) ou passer outre vu que la requête s'exécute bien

    Merci d'avance et bonne soirée

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 847
    Points : 52 961
    Points
    52 961
    Billets dans le blog
    6
    Par défaut
    quelle version de sql server ???

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Microsoft SQL Server 2005

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 847
    Points : 52 961
    Points
    52 961
    Billets dans le blog
    6
    Par défaut
    Ceci passe sans problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE VIEW V
    AS
    SELECT *, ROW_NUMBER() OVER(ORDER BY NID) AS N
    FROM dbo.T_CLIENT
    NID étant la clef de la table dbo.T_CLIENT

    Cependant sans clef, le résultat peut être aléatoire....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Mon pb justement, c'est que je n'ai pas de clé primaire, l'idée étant de créer un index sur le champ ROW_NUMBER justement.

    Pour être plus précis cette vue est une jointure entre une table et une autre vue qui me renvoit de nombreux résultats par clé primaire de la table (c'est ce qu'il me faut)

    Donc mon seul pb, c'est ce message d'erreur apparemment, sans conséquence:

    Erreur de syntaxe SQL :
    La construction ou l'instruction SQL OVER n'est pas prise en charge.
    Il apparait uniquement qd j'ouvre la vue pour la modifier (par le code SQL). Quand j'ouvre la vue directement, aucun problème, j'ai mes résultats et mon champ ROW_NUMBERisé.

    Avez vous déjà rencontré ce style de pb (une erreur de syntaxe sql qui fonctionne!!)

    Merci pour les précédentes réponses et pour la suivante ;-)

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 847
    Points : 52 961
    Points
    52 961
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l'idée étant de créer un index sur le champ ROW_NUMBER justement.
    Vous ne pouvez pas créer un index sur ce type de données.

    Exposez votre problème plus clairement en respectant la charte de postage et en donnant le DDL des tables en jeu ainsi qu'un jeu d'essais sous forme SQL.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  9. #9
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    merci de vos réponses

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

Discussions similaires

  1. [WD18] Champ matricule auto-incrémenté
    Par findjo07 dans le forum WinDev
    Réponses: 7
    Dernier message: 22/11/2018, 11h57
  2. [MySQL] Tester si un champ est auto incrémenté
    Par NiRaDo dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/02/2008, 12h54
  3. "Nettoyer" les champs Identity auto-incrément
    Par rohstev dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 25/10/2006, 09h51
  4. Champs virtuel auto incrémenté dans une vue
    Par berceker united dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/06/2006, 14h33

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