Je voudrais interroger le nom de toutes les colonnes d'une table. J'ai trouvé comment faire cela dans:
Mais j'ai besoin de savoir: comment faire cela dans Microsoft SQL Server (2008 dans mon cas)?
sql
sql-server
sql-server-2008
tsql
odiseh
la source
la source
SELECT * FROM my_table WHERE 1=0
SELECT TOP 0 * FROM my_table
c'est moins de frappesRéponses:
Vous pouvez obtenir ces informations et bien plus encore en interrogeant les vues Schéma d'informations .
Cet exemple de requête:
Peut être créé sur tous ces objets DB:
la source
Nortwind.
...)SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'tableName';
cela fonctionne pour moiTABLE_SCHEMA = '?' AND TABLE_NAME = '?'
car je suis sur localhost et j'ai plusieurs tables avec le même nom mais dans différentes bases de données.Vous pouvez utiliser la procédure stockée sp_columns qui retournerait des informations relatives à toutes les colonnes d'une table donnée. Plus d'informations peuvent être trouvées ici http://msdn.microsoft.com/en-us/library/ms176077.aspx
Vous pouvez également le faire par une requête SQL. Quelque chose comme ça devrait aider:
Ou une variation serait:
Cela obtient toutes les colonnes de toutes les tables, triées par nom de table, puis par nom de colonne.
la source
C'est mieux que de partir
sys.columns
car cela se voitDATA_TYPE
directement.la source
AND TABLE_SCHEMA = 'schemaName'
laWHERE
clause.JOIN sys.types t on c.system_type_id = t.system_type_id
et ajoutert.name
votre instruction 'SELECT' pour obtenir également les types à côté du nom de chaque colonne.Vous pouvez utiliser
sp_help
dans SQL Server 2008.Raccourci clavier pour la commande ci-dessus: sélectionnez le nom de la table (c.-à-d. Mettez-le en surbrillance) et appuyez sur ALT+ F1.
la source
En utilisant cette requête, vous obtenez la réponse:
la source
Vous pouvez écrire cette requête pour obtenir le nom de la colonne et tous les détails sans utiliser INFORMATION_SCHEMA dans MySql:
la source
la source
TABLE_NAME
est ta tablela source
la source
Exécutez simplement cette commande
la source
Cette question SO manque l'approche suivante:
la source
Il vérifiera si le donné
table
est la table de base .la source
Vous pouvez essayer ceci, ce qui donne tous les noms de colonnes avec leurs types de données respectifs.
la source
vous pouvez utiliser cette requête
la source
la source
Une autre option qui est sans doute plus intuitive est:
Cela vous donne tous les noms de vos colonnes dans une seule colonne. Si vous vous souciez d'autres métadonnées, vous pouvez modifier éditer le SELECT STATEMENT TO
SELECT *
.la source
Résumer les réponses
Je peux voir de nombreuses réponses et façons différentes de le faire, mais il y a le hic là-dedans et c'est le
objective
.Oui, l'objectif. Si vous voulez
only know
les noms de colonnes que vous pouvez utiliserMais si vous voulez voir
use
ces colonnes quelque part ou simplement les diremanipulate
, les requêtes rapides ci-dessus ne seront d'aucune utilité. Vous devez utiliserune autre façon de connaître certaines colonnes spécifiques où nous avons besoin de certaines colonnes similaires
la source
la source
Simple et ne nécessite aucune table sys
la source