salut
comment je peux afficher les champs d'une table qui ne sont ni clé primaire ou clé étrangére
merci
salut
comment je peux afficher les champs d'une table qui ne sont ni clé primaire ou clé étrangére
merci
Bonjour,
Vous avez le choix entre:
1/ Executer la procédure stpckée sp_help
2/ Interroger la vue COLUMNS du schéma d'information
Code : Sélectionner tout - Visualiser dans une fenêtre à part exec sp_help nomtable
Code : Sélectionner tout - Visualiser dans une fenêtre à part select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='maTable'
j'ai essayé ceci mais je fais un filtre selon la contrainte du champ ( primary key ou foreign key)
Bonjour,
Dans ce cas il est nécessaire de filtrer par rapport aux autres vues du schéma d'information et plus particulièrement CONSTRAINT_COLUMN_USAGE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='categories' AND COLUMN_NAME NOT IN(SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE where TABLE_NAME=INFORMATION_SCHEMA.COLUMNS.TABLE_NAME);
La requête de jero44 est fausse :
1) il manque une table intermédiare
2) une table c'est un nom de schéma SQL + un nom de table.
Il faut toujours rajouter le nom du schéma, sinon vous risquez d'obtenir plusieurs solutions pour des tables aux noms identiques situés dans différents schéma SQL.
Par défaut le schéma SQL est "dbo".
DOnc :
Sur les vues d'information de schéma :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT KCU.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS TC INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU ON TC.CONSTRAINT_SCHEMA = KCU.CONSTRAINT_SCHEMA AND TC.CONSTRAINT_NAME = KCU.CONSTRAINT_NAME WHERE TC.TABLE_NAME = 'categories' AND TC.TABLE_SCHEMA = 'dbo' AND TC.CONSTRAINT_TYPE = 'PRIMARY KEY' -- ou FOREIGN KEY
http://sqlpro.developpez.com/cours/s...age=partie2#L9
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 ,ceci m'a aidé a avoir ceci et obtenir tout les champs sauf les clé primaire et etrangere.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='Departement' and TABLE_SCHEMA='dbo' AND COLUMN_NAME NOT IN(SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE WHERE TABLE_NAME=INFORMATION_SCHEMA.COLUMNS.TABLE_NAME)
C'est encore faux, cas là vous éliminez aussi les colonnes des contraintes d'unicité !
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/ * * * * *
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