Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[SQL Server] Existence d'une colonne de table

4 réponses
Avatar
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

4 réponses

Avatar
Eric
Le 7 janvier 2008 à 18:29, dans
<news:8pk0rc7nwdl5$, je disais :

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
Avatar
Fred Brouard - SQLpro
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
<news:8pk0rc7nwdl5$, je disais :

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 *************************
Avatar
nobody
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)
Avatar
Eric
Le 7 janvier 2008 à 22:09, dans
<news:478295f8$0$21145$, Fred Brouard -
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