[SQL Server] Existence d'une colonne de table

Le
Eric
Bonjour,

Je cherche un moyen pour savoir si une colonne ColX existe dans une
table TableX.
J'ai pensé à utiliser EXISTS mais je ne vois pas comment faire.

Merci de votre aide.

--
Eric
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric
Le #21884611
Le 7 janvier 2008 à 18:29, dans

Je cherche un moyen pour savoir si une colonne ColX existe dans une
table TableX.



Comme souvent, on trouve juste après avoir posé la question...
Voici comment je procède :

select name from syscolumns
where id=object_id('TableX') and name='ColX'

--
Eric
Fred Brouard - SQLpro
Le #21884601
Bonjour,

C'est toujours dangereux d'utiliser les tables sytème car MS se réserve
le droit de les modifier d'une version à l'autre voire de les supprimer.
De plus c'est spécifique à MS

En revanche il existe les vue d'information de schéma qui sont la norme,
sont implémentées sous SQL Server et sont portables :

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'monschéma' -- le plus souvent dbo
AND TABLE_NAME = 'macolonne'
AND COLUMN_NAME = 'macolonne'

Lisez l'article que j'ai écrit sur le sujet :
http://sqlpro.developpez.com/cours/sqlaz/ddl/?page=partie2#L9

A +

Eric a écrit :
Le 7 janvier 2008 à 18:29, dans

Je cherche un moyen pour savoir si une colonne ColX existe dans une
table TableX.



Comme souvent, on trouve juste après avoir posé la question...
Voici comment je procède :

select name from syscolumns
where id=object_id('TableX') and name='ColX'





--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
nobody
Le #21884591
Fred Brouard - SQLpro a écrit :
Bonjour,

C'est toujours dangereux d'utiliser les tables sytème car MS se réserve
le droit de les modifier d'une version à l'autre voire de les supprimer.
De plus c'est spécifique à MS

En revanche il existe les vue d'information de schéma qui sont la norme,
sont implémentées sous SQL Server et sont portables :

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'monschéma' -- le plus souvent dbo
AND TABLE_NAME = 'macolonne'
AND COLUMN_NAME = 'macolonne'

Lisez l'article que j'ai écrit sur le sujet :
http://sqlpro.developpez.com/cours/sqlaz/ddl/?page=partie2#L9

A +




Il est plus dangereux de faire confiance à n'importe quel "expert"
et comme l'informatique c'est comme le tennis ; les profs de tennis et
ceux qui écrivent des livres sur le tennis sont rarement bien classé et
encore plus rarement des champions

dans l'histoire de l'informatique il n'existe aucun cas ou lorsque une
"fonction caché" d'un logiciel est utilisé par une communauté celle ci
n'est pas officialisé (ou un équivalent) dans les nouvelles versions
c'est d'autant plus vrai que les logiciels sont ceux de microsoft car
bien souvent les "fonction caché" sont des fonctions officielles mais
caché pour donner un avantage concurrentielles aux développeurs
microsoft (plusieurs procès en font état ces 20 dernières années)
Eric
Le #21884571
Le 7 janvier 2008 à 22:09, dans
SQLpro nous disait :

C'est toujours dangereux d'utiliser les tables sytème car MS se réserve
le droit de les modifier d'une version à l'autre voire de les supprimer.
De plus c'est spécifique à MS

En revanche il existe les vue d'information de schéma qui sont la norme,
sont implémentées sous SQL Server et sont portables :



Merci de votre réponse détaillée. Hélas, je travaille sur une base SAGE
et les vues auxquelles vous faites référence n'existent pas. Je me vois
contraint d'utiliser les tables systèmes.

--
Eric
Publicité
Poster une réponse
Anonyme