Comment puis-je obtenir les noms des colonnes d'une table dans SQL Server ?

Je voudrais interroger le nom de toutes les colonnes d'une table. J'ai trouvé comment le faire dans :

Mais j'ai besoin de savoir : *Comment cela peut-il être fait dans Microsoft SQL Server* (2008 dans mon cas) ?

Solution

Vous pouvez obtenir ces informations et bien plus encore en interrogeant les [vues du schéma d'information][1].

Cet exemple de requête :

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'

peut être effectuée sur tous ces objets de la base de données :

Commentaires (6)

Vous pouvez utiliser la procédure stockée sp_columns qui renvoie les informations relatives à toutes les colonnes d'une table donnée. Vous trouverez plus d'informations ici [http://msdn.microsoft.com/en-us/library/ms176077.aspx][1].

[1] : http://msdn.microsoft.com/en-us/library/ms176077.aspx

Vous pouvez également le faire par une requête SQL. Une chose comme celle-ci devrait vous aider :

SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName') 

Ou une variation serait :

SELECT   o.Name, c.Name
FROM     sys.columns c 
         JOIN sys.objects o ON o.object_id = c.object_id 
WHERE    o.type = 'U' 
ORDER BY o.Name, c.Name

Cela permet d'obtenir toutes les colonnes de toutes les tables, classées par nom de table, puis par nom de colonne.

Commentaires (0)

En utilisant cette requête, vous obtenez la réponse :

select Column_name 
from Information_schema.columns 
where Table_name like 'table name'
Commentaires (0)