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 !
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 !
Vous pouvez utiliser la fonction row_number() pour réaliser cela.
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
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/ * * * * *
Microsoft SQL Server 2005
Ceci passe sans problème :
NID étant la clef de la table dbo.T_CLIENT
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
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/ * * * * *
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 :
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é.La construction ou l'instruction SQL OVER n'est pas prise en charge.
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 ;-)
Vous ne pouvez pas créer un index sur ce type de données.
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.
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/ * * * * *
merci de vos réponses
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager