MSdbms (Transact-SQL)

Mis à jour : 17 juillet 2006

Renvoie des informations de colonne pour les tables ou vues spécifiées qui peuvent être interrogées dans l'environnement actuel.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sp_columns [ @table_name = ] object  [ , [ @table_owner = ] owner ] 
     [ , [ @table_qualifier = ] qualifier ] 
     [ , [ @column_name = ] column ] 
     [ , [ @ODBCVer = ] ODBCVer ]

Arguments

  • [ @table_name=] object
    Nom de la table ou vue utilisée pour retourner les informations de catalogue. object_name est de type nvarchar(384), sans valeur par défaut. La recherche de correspondance avec des caractères génériques est prise en charge.
  • [ @table_owner****=**] owner
    Nom du propriétaire de l'objet table ou vue utilisé pour renvoyer des informations de catalogue. owner est de type nvarchar(384), avec NULL comme valeur par défaut. La recherche de correspondance avec des caractères génériques est prise en charge. Si l'argument owner n'est pas spécifié, les règles définissant par défaut la visibilité des tables ou vues du SGBD sous-jacent s'appliquent.

    Dans SQL Server 2005, si l'utilisateur actuel est propriétaire d'une table ou vue portant le nom spécifié, les colonnes de cette table sont retournées. Si l'argument owner n'est pas spécifié et que l'utilisateur actuel ne possède pas de table ou de vue contenant la valeur object spécifiée, la procédure sp_columns recherche une table ou vue contenant la valeur object spécifiée et appartenant au propriétaire de la base de données. S'il en existe une, les colonnes de cette table sont retournées.

  • [ @table_qualifier****=] qualifier
    Nom du qualificateur de la table ou de la vue. qualifier est de type sysname, avec NULL comme valeur par défaut. Divers produits SGDB prennent en charge les noms de table en trois parties (qualifier
    .owner.**name). Dans SQL Server, cette colonne représente le nom de la base de données. Dans certains produits, elle représente le nom du serveur de l'environnement de base de données de la table.
  • [ @column_name=] column
    Colonne unique utilisée lorsqu'une seule colonne d'informations de catalogue est demandée. column est de type nvarchar(384), avec NULL comme valeur par défaut. Si l'argument column n'est pas spécifié, toutes les colonnes sont retournées. Dans SQL Server, column représente le nom de la colonne tel qu'il figure dans la table syscolumns. La recherche de correspondance avec des caractères génériques est prise en charge. Pour assurer une interopérabilité maximale, le client de la passerelle ne doit utiliser que les modèles de comparaison standard de SQL-92 (caractères génériques % et _).
  • [ @ODBCVer=] ODBCVer
    Version ODBC utilisée. ODBCVer est de type int, avec 2 comme valeur par défaut, ce qui correspond à la version 2 d'ODBC. Les valeurs correctes sont 2 ou 3. Consultez la spécification ODBC SQLColumns pour connaître les différences de comportement entre les versions 2 et 3.

Autorisations

Nécessite l'autorisation SELECT sur le schéma.

Valeurs du code de retour

Aucune

Ensembles de résultats

La procédure stockée de catalogue sp_columns est équivalente à SQLColumns dans ODBC. Les résultats renvoyés sont triés par TABLE_QUALIFIER, TABLE_OWNER et TABLE_NAME.

Nom de colonne Type de données Description

TABLE_QUALIFIER

sysname

Nom du qualificateur de la table ou de la vue. Ce champ peut contenir la valeur NULL.

TABLE_OWNER

sysname

Nom du propriétaire de la table ou de la vue. Ce champ retourne toujours une valeur.

TABLE_NAME

sysname

Nom de la table ou de la vue. Ce champ retourne toujours une valeur.

COLUMN_NAME

sysname

Nom de colonne, pour chaque colonne de TABLE_NAME renvoyée. Ce champ retourne toujours une valeur.

DATA_TYPE

smallint

Code entier d'un type de données ODBC. S'il s'agit d'un type de données qui ne peut pas être mappé avec un type ODBC, cette valeur est NULL. Le nom du type de données natif est renvoyé dans la colonne TYPE_NAME.

TYPE_NAME

sysname

Chaîne représentant un type de données. Le SGBD sous-jacent dispose de ce nom de type de données.

PRECISION

int

Nombre de chiffres significatifs. La valeur retournée pour la colonne PRECISION est en base 10.

LENGTH

int

Taille de transfert des données.1

SCALE

smallint

Nombre de chiffres situés à droite du séparateur décimal.

RADIX

smallint

Base pour les types de données numériques.

NULLABLE

smallint

Précise la possibilité de valeur nulle.

1 = les valeurs NULL sont autorisées.

0 = pas de valeur NULL.

NOTES

varchar(254)

Ce champ renvoie toujours la valeur NULL.

COLUMN_DEF

nvarchar(4000)

Valeur par défaut de la colonne

SQL Server 2005 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 2005.

SQL_DATA_TYPE

smallint

Valeur du type de données SQL telle qu'il apparaît dans le champ TYPE du descripteur. Cette colonne est la même que la colonne DATA_TYPE, excepté pour le type de données datetime et pour le type de données interval de SQL-92. Cette colonne renvoie toujours une valeur.

SQL_DATETIME_SUB

smallint

Code de sous-type pour le type de données datetime et pour le type de données interval de SQL-92. Pour les autres types de données, cette colonne renvoie la valeur NULL.

CHAR_OCTET_LENGTH

int

Longueur maximale, en octets, d'une colonne de type de données caractère ou entier. Pour tous les autres types de données, cette colonne renvoie une valeur NULL.

ORDINAL_POSITION

int

Numéro d'ordre de la colonne dans la table. La première colonne de la table porte le numéro 1. Cette colonne renvoie toujours une valeur.

IS_NULLABLE

varchar(254)

Possibilité de valeurs NULL dans la colonne de la table. Les règles ISO sont utilisées pour déterminer la possibilité de valeurs NULL. Un SGBD compatible avec la norme ISO SQL ne peut pas renvoyer de chaîne vide.

YES = la colonne peut inclure des valeurs NULL.

NO = la colonne ne peut pas inclure de valeurs NULL.

Cette colonne renvoie une chaîne de longueur zéro si la possibilité de valeurs NULL n'est pas connue.

La valeur renvoyée pour cette colonne est différente de celle renvoyée pour la colonne NULLABLE.

SS_DATA_TYPE

tinyint

Type de données SQL Server utilisé par les procédures stockées étendues. Pour plus d'informations, consultez Types de données (Transact-SQL).

1 Pour plus d'informations, consultez la documentation de Microsoft ODBC.

Exemples

L'exemple suivant retourne les informations de colonne pour une table spécifique.

USE AdventureWorks
GO
EXEC sp_columns @table_name = N'Department',
   @table_owner = N'HumanResources';

Voir aussi

Référence

sp_tables (Transact-SQL)
Procédures stockées de catalogue (Transact-SQL)
Procédures stockées système (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

17 juillet 2006

Nouveau contenu :
  • Dans la colonne COLUMN_DEF, ajout d'informations à propos du stockage des expressions SQL dans SQL Server 2005.