Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2010, 16h27   #1
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Par défaut Table sans clé ?

Bonjour à tous,

je doit travailler sur une base sql server (base cegid) , j'ai donc un accès limiter à cette base que je consulte avec sql serve rmanager.

Pour les besoins de mon développement j'essai de trouver les PK/FK et les index d'unicité si il existent.

Le problème c'est que la procédure stocké
Code :
EXEC sp_pkeys @table_name='matable'
ne me retourne rien.

Idem pour
Code :
1
2
3
SELECT * 
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
WHERE TABLE_NAME = 'matable'
J'ai en revanche accès au index via l'arboresence de la table , mais je n'y trouve que des index de type cluster. Je suis plus famillier de mysql et de sqlite ou l'on peu trouver des index de type unique qui ne semble pas possible ici.

Est il possible qu'une base aussi complexe que celle de CEGID (erp) soit faites sans aucune clé ou index d'unicité ? ou alors est ce mon compte qui m'interdit l'accès à ces informations ?

Merci
grunk est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 17h11   #2
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 138
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 138
Points : 2 466
Points : 2 466
Envoyer un message via Yahoo à zinzineti
Indique le nom du schema auquel appartient la table

Code :
1
2
EXEC sp_pkeys @table_name = N'myTable'
    ,@table_owner = N'myschema';
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 17h17   #3
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Merci pour ta réponse,
comment puis je connaitre ce schema ?
grunk est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 17h24   #4
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 138
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 138
Points : 2 466
Points : 2 466
Envoyer un message via Yahoo à zinzineti
Citation:
Envoyé par grunk Voir le message
Merci pour ta réponse,
comment puis je connaitre ce schema ?
Code :
SELECT DISTINCT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
OU MIEUX


Code :
1
2
3
SELECT TABLE_SCHEMA 
FROM INFORMATION_SCHEMA.TABLES  
WHERE TABLE_NAME = 'myTable'
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 17h55   #5
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 138
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 138
Points : 2 466
Points : 2 466
Envoyer un message via Yahoo à zinzineti
Il faut bien se positionner sur la base concernée avant d'exécuter sp_pkeys


Exemple

Code :
1
2
3
4
USE [Mabase]
GO
 
EXEC sp_pkeys @table_name = N'myTable'
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 08h40   #6
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
J'arrive bien récupérer le schema mais la procédure stockée ne me retourne aucun résultat (j'ai bien les colonnes TABLE_QUALIFIER,TABLE_OWNER ... mais vide.

Je peux en conclure que je n'ai pas de clé ni d'index d'unicité sur cette table ?
grunk est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 10h08   #7
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 138
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 138
Points : 2 466
Points : 2 466
Envoyer un message via Yahoo à zinzineti
Est ce que tu t'es bien positionné la base concernée ?

Voici un exemple

Code :
1
2
3
USE [TaBase]
GO
EXEC sp_pkeys @table_name = N'myTable'
Si en faisant celà tu n'as pas de ligne alors la table n'a pas de clé primaire.

Tu peux aussi le voir clairement en affichant la DDL de la table.

A+
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 10h17   #8
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Oui , j'avais bien procéder comme ceci.
Deplus clic droit sur une bdd => nouvelle requête ne nous place t'il pas automatiquement sur cette base ?

Merci pour votre aide.
grunk est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 19h35   #9
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 943
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 943
Points : 17 754
Points : 17 754
Bien entendu il existe des index UNIQUE sous MS SQL Server. Mais c'est généralement une stupidité que de créer des index unique alors que l'on peut créere des contraintes d'unicité qui sont de toutes façon indexées.
La présence d'index unique sans contraintes sous-jacente prouve en général que ceux qui les ont posés ne connaissent rien aux bases de données en général !

Citation:
Est il possible qu'une base aussi complexe que celle de CEGID (erp) soit faites sans aucune clé ou index d'unicité ? ou alors est ce mon compte qui m'interdit l'accès à ces informations ?
L'un est l'autre est possible.

Que dit cette requête :
SELECT USER, SYSTEM_USER ?
Cela vous permetrra de savoir quel est votre nom d'utilisateur et de savoir si vous avez accès aux privilèges de vues sur les infortmations de schéma.


A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 12h00   #10
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Citation:
Envoyé par SQLpro Voir le message
Que dit cette requête :
SELECT USER, SYSTEM_USER ?
La requête retourne pour les deux colonnes mon nom d'utilisateur à savoir INTRANET
grunk est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 10h26   #11
Invité de passage
 
Inscription : avril 2010
Messages : 1
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 1
Points : 1
Points : 1
Bonjour Grunk!
N'hésitez pas à contacter un expert Cegid au 0 826 888 488. Je pense que celui-ci saura sans doute répondre à vos questions et/où vous réorienter vers un expert SQL.
Sincères salutations, François, Community Manager pour Cegid.
erobert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 15h49   #12
Membre régulier
 
Inscription : mars 2004
Messages : 147
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 147
Points : 96
Points : 96
Bonsoir

Le modèle objet CEGID est tout sauf relationnel : très peu de tables ont des identifiants / clés primaires

Pas la peine de chercher

Un véritable "cas d'école" d'une BDD mal construite...

L'outil Business Studio permet cependant d'accéder aux structures de tables, mais le mieux est de se faire son propre reporting/outil de recherche

Cédric
__________________
Mon autre vie après l'informatique : la photographie animalière...
cedric_g est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 21h28   #13
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 943
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 943
Points : 17 754
Points : 17 754
Citation:
Envoyé par erobert Voir le message
Bonjour Grunk!
N'hésitez pas à contacter un expert Cegid au 0 826 888 488. Je pense que celui-ci saura sans doute répondre à vos questions et/où vous réorienter vers un expert SQL.
Sincères salutations, François, Community Manager pour Cegid.
Si la base CEGID est aussi ma modélisée qu'on le dit, alors parler d'expert SQL CEGID, doit relever de la bouffonnerie !

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h33.


 
 
 
 
Partenaires

Hébergement Web