Partager via


COLUMNS (Transact-SQL)

Renvoie une ligne pour chaque colonne accessible à l'utilisateur actuel dans la base de données actuelle.

Pour récupérer les informations de ces vues, spécifiez le nom complet de INFORMATION_SCHEMA.view_name.

Nom de colonne

Type de données

Description

TABLE_CATALOG

nvarchar(128)

Identificateur de la table

TABLE_SCHEMA

nvarchar(128)

Nom du schéma qui contient la table.

ImportantImportant
N'utilisez pas les vues INFORMATION_SCHEMA pour déterminer le schéma d'un objet. La seule méthode fiable pour rechercher le schéma d'un objet est d'interroger l'affichage catalogue sys.objects ou d'utiliser la fonction OBJECT_SCHEMA_NAME.

TABLE_NAME

nvarchar(128)

Nom de la table.

COLUMN_NAME

nvarchar(128)

Nom de la colonne.

ORDINAL_POSITION

int

Numéro d'identification de la colonne.

COLUMN_DEFAULT

nvarchar(4000)

Valeur par défaut de la colonne

SQL Server 2008 diffère de SQL Server 2000 par sa manière de décoder et de stocker les expressions SQL dans les métadonnées de catalogue. La sémantique de l'expression décodée est équivalente au texte d'origine, par contre la syntaxe n'est pas garantie. Par exemple, les espaces sont supprimés de l'expression décodée. Pour plus d'informations, consultez Changements de comportement des fonctionnalités du moteur de base de données de SQL Server 2008.

IS_NULLABLE

varchar(3)

Valeur NULL possible dans la colonne. Si cette colonne accepte des valeurs NULL, elle renvoie YES. Dans le cas contraire, elle renvoie NO.

DATA_TYPE

nvarchar(128)

Type de données fourni par le système.

CHARACTER_MAXIMUM_LENGTH

int

Longueur maximale (en caractères) des données de type binaire, caractère, texte et image.

-1 pour des types de données xml ou de valeurs élevées. Renvoie NULL dans les autres cas. Pour plus d'informations, consultez Types de données (Transact-SQL).

CHARACTER_OCTET_LENGTH

int

Longueur maximale, en octets, des données de type binaire, caractère, texte et image.

-1 pour les données xml et les données de type de valeur élevée. Renvoie NULL dans les autres cas.

NUMERIC_PRECISION

tinyint

Précision des données numériques approximatives ou exactes, des données de type entier ou monétaire. Renvoie NULL dans les autres cas.

NUMERIC_PRECISION_RADIX

smallint

Base de précision des données numériques approchées ou exactes, des données de type entier ou monétaire. Renvoie NULL dans les autres cas.

NUMERIC_SCALE

int

Échelle des données numériques approchées ou exactes, des données de type entier ou monétaire. Renvoie NULL dans les autres cas.

DATETIME_PRECISION

smallint

Code de sous-type pour les types de données datetime et ISO interval. Renvoie NULL pour les autres types de données.

CHARACTER_SET_CATALOG

nvarchar(128)

Renvoie master. Ceci indique la base de données dans laquelle se trouve le jeu de caractères, si la colonne est de type character ou text. Renvoie NULL dans les autres cas.

CHARACTER_SET_SCHEMA

nvarchar(128)

Renvoie toujours NULL.

CHARACTER_SET_NAME

nvarchar(128)

Renvoie le nom unique du jeu de caractères si cette colonne est de type character ou text. Renvoie NULL dans les autres cas.

COLLATION_CATALOG

nvarchar(128)

Renvoie toujours NULL.

COLLATION_SCHEMA

nvarchar(128)

Renvoie toujours NULL.

COLLATION_NAME

nvarchar(128)

Renvoie le nom unique du classement si la colonne est de type character ou text. Renvoie NULL dans les autres cas.

DOMAIN_CATALOG

nvarchar(128)

Si la colonne est un type de données alias, elle correspond au nom de la base de données dans laquelle le type de données défini par l'utilisateur a été créé. Renvoie NULL dans les autres cas.

DOMAIN_SCHEMA

nvarchar(128)

Si la colonne est un type de données défini par l'utilisateur, elle renvoie le nom du schéma du type de données défini par l'utilisateur. Renvoie NULL dans les autres cas.

ImportantImportant
N'utilisez pas les vues INFORMATION_SCHEMA pour déterminer le schéma d'un type de données. La seule méthode fiable pour rechercher le schéma d'un type est d'utiliser la fonction TYPEPROPERTY.

DOMAIN_NAME

nvarchar(128)

Si la colonne est un type de données défini par l'utilisateur, elle représente le nom du type de données défini par l'utilisateur. Renvoie NULL dans les autres cas.

Notes

La colonne ORDINAL_POSITION de la vue INFORMATION_SCHEMA.COLUMNS n'est pas compatible avec le modèle binaire des colonnes retournées par la fonction COLUMNS_UPDATED . Pour recevoir un modèle binaire compatible avec COLUMNS_UPDATED, vous devez référencer la propriété ColumnID de la fonction système COLUMNPROPERTY lorsque vous interrogez la vue INFORMATION_SCHEMA.COLUMNS. Par exemple :

USE AdventureWorks;
GO

SELECT COLUMN_NAME, COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'ColumnID') AS COLUMN_ID
FROM AdventureWorks.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Employee';

Exemples

Dans l'exemple suivant, vous obtenez les colonnes dans toutes les tables et toutes les vues dans la base de données qui n'autorisent pas la valeur NULL.

USE AdventureWorks;
GO

SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE IS_NULLABLE = 'NO'
ORDER BY DATA_TYPE;