Partage via


SQLColumns

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

SQLColumns retourne SQL_SUCCESS si des valeurs existent ou non pour les paramètres CatalogName, TableName ou ColumnName. SQLFetch retourne SQL_NO_DATA lorsque des valeurs non valides sont utilisées dans ces paramètres.

Remarque

Pour les types de valeur de grande taille, tous les paramètres « length » sont retournés avec la valeur SQL_SS_LENGTH_UNLIMITED.

SQLColumns peut être exécuté sur un curseur de serveur statique. Une tentative d’exécution de SQLColumns sur un curseur pouvant être mis à jour (dynamique ou jeu de clés) retourne SQL_SUCCESS_WITH_INFO indiquant que le type de curseur a été modifié.

Le pilote ODBC SQL Server Native Client prend en charge les informations de création de rapports pour les tables sur des serveurs liés en acceptant un nom en deux parties pour le paramètre CatalogName : Linked_Server_Name.Catalog_Name.

Pour ODBC 2.x applications n’utilisant pas de caractères génériques dans TableName, SQLColumns retourne des informations sur les tables dont les noms correspondent à TableName et appartiennent à l’utilisateur actuel. Si l’utilisateur actuel ne possède aucune table dont le nom correspond au paramètre TableName , SQLColumns retourne des informations sur les tables appartenant à d’autres utilisateurs où le nom de la table correspond au paramètre TableName . Pour ODBC 2.x applications utilisant des caractères génériques, SQLColumns retourne toutes les tables dont les noms correspondent à TableName. Pour ODBC 3.x applications SQLColumns retourne toutes les tables dont les noms correspondent à TableName , quel que soit le propriétaire ou si des caractères génériques sont utilisés.

Le tableau ci-dessous dresse la liste des colonnes renvoyées par le jeu de résultats :

Nom de colonne Description
DATA_TYPE Retourne SQL_VARCHAR, SQL_VARBINARY ou SQL_WVARCHAR pour les types de données varchar(max).
TYPE_NAME Renvoie « varchar », « varbinary » ou « nvarchar » pour les types de données varchar(max), varbinary(max) et nvarchar(max).
COLUMN_SIZE Retourne SQL_SS_LENGTH_UNLIMITED pour les types de données varchar(max) indiquant que la taille de la colonne est illimitée.
BUFFER_LENGTH Retourne SQL_SS_LENGTH_UNLIMITED pour les types de données varchar(max) indiquant que la taille de la mémoire tampon est illimitée.
SQL_DATA_TYPE Retourne SQL_VARCHAR, SQL_VARBINARY ou SQL_WVARCHAR pour les types de données varchar(max).
CHAR_OCTET_LENGTH Retourne la longueur maximale d'une colonne de type char ou binary. Retourne 0 pour indiquer que la taille est illimitée.
SS_XML_SCHEMACOLLECTION_CATALOG_NAME Retourne le nom du catalogue dans lequel un nom de collection de schémas XML est défini. Si le nom du catalogue est introuvable, cette variable contient une chaîne vide.
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME Retourne le nom du schéma dans lequel un nom de collection de schémas XML est défini. Si le nom du schéma est introuvable, cette variable contient une chaîne vide.
SS_XML_SCHEMACOLLECTION_NAME Retourne le nom d'une collection de schémas XML. Si le nom est introuvable, cette variable contient une chaîne vide.
SS_UDT_CATALOG_NAME Nom du catalogue contenant l’UDT (type défini par l’utilisateur).
SS_UDT_SCHEMA_NAME Nom du schéma contenant l’UDT.
SS_UDT_ASSEMBLY_TYPE_NAME Nom qualifié de l'assembly du type défini par l'utilisateur (UDT).

Pour les UDT, la colonne TYPE_NAME existante est utilisée pour indiquer le nom de l’UDT ; par conséquent, aucune colonne supplémentaire ne doit être ajoutée au jeu de résultats de SQLColumns ou SQLProcedureColumns. Le champ DATA_TYPE pour un paramètre ou une colonne de type UDT est SQL_SS_UDT.

Pour le type UDT des paramètres, vous pouvez utiliser les nouveaux descripteurs spécifiques au pilote définis ci-dessus pour obtenir ou définir les propriétés de métadonnées supplémentaires d'un UDT, si le serveur retourne ou nécessite ces informations.

Lorsqu’un client se connecte à SQL Server et appelle SQLColumns, l’utilisation de valeurs NULL ou de caractères génériques pour le paramètre d’entrée de catalogue ne retourne pas d’informations à partir d’autres catalogues. Seules les informations sur le catalogue actuel sont retournées. Le client peut d’abord appeler sqlTables pour déterminer dans quel catalogue la table souhaitée se trouve. Le client peut ensuite utiliser cette valeur de catalogue pour le paramètre d’entrée de catalogue dans son appel à SQLColumns pour récupérer des informations sur les colonnes de cette table.

SQLColumns et paramètres table

Le jeu de résultats retourné par SQLColumns dépend du paramètre de SQL_SOPT_SS_NAME_SCOPE. Pour plus d’informations, consultez SQLSetStmtAttr. Les colonnes suivantes ont été ajoutées pour les paramètres table :

Nom de la colonne Type de données Contenu
SS_IS_COMPUTED Smallint Pour une colonne d'un TABLE_TYPE, SQL_TRUE si la colonne est une colonne calculée ; sinon, SQL_FALSE.
SS_IS_IDENTITY Smallint SQL_TRUE si la colonne est une colonne d'identité ; sinon, SQL_FALSE.

Pour plus d’informations sur les paramètres table, consultez Paramètres table (ODBC) .

Prise en charge par SQLColumns des fonctionnalités de date et heure améliorées

Pour plus d’informations sur les valeurs retournées pour les types date/heure, consultez Métadonnées du catalogue.

Pour plus d’informations, consultez Améliorations de date et d’heure (ODBC).

Prise en charge SQLColumns pour les types CLR volumineux définis par l'utilisateur

SQLColumns prend en charge les types clR définis par l’utilisateur (UDT). Pour plus d’informations, consultez Les types CLR définis par l’utilisateur (ODBC) volumineux.

Prise en charge SQLColumns pour les colonnes éparses

Deux colonnes spécifiques à SQL Server ont été ajoutées au jeu de résultats pour SQLColumns :

Nom de la colonne Type de données Description
SS_IS_SPARSE Smallint Si la colonne est une colonne éparse, SQL_TRUE ; sinon, SQL_FALSE.
SS_IS_COLUMN_SET Smallint Si la colonne est la colonne column_set , il s’agit SQL_TRUE ; sinon, SQL_FALSE.

Conformément à la spécification ODBC, SS_IS_SPARSE et SS_IS_COLUMN_SET apparaissent avant toutes les colonnes spécifiques au pilote ajoutées aux versions de SQL Server antérieures à SQL Server 2008 (10.0.x) et après toutes les colonnes mandatées par ODBC lui-même.

Le jeu de résultats retourné par SQLColumns dépend du paramètre de SQL_SOPT_SS_NAME_SCOPE. Pour plus d’informations, consultez SQLSetStmtAttr.

Pour plus d’informations sur les colonnes éparses dans ODBC, consultez La prise en charge des colonnes éparses (ODBC).

Voir aussi

SQLColumns, fonction
Détails de l’implémentation d’API ODBC