Partager via


Utilisation des types de données

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Le SQL Server Native Client pilote ODBC et SQL Server imposer l’utilisation suivante des types de données.

Type de données Limitation
Littéraux de date Les littéraux de date, lorsqu’ils sont stockés dans une colonne SQL_TYPE_TIMESTAMP (SQL Server types de données datetime ou smalldatetime), ont une valeur d’heure de 12:00:00.000 A.M.
argent et smallmoney Seules les parties entières des types de données money et smallmoney sont significatives. Si la partie décimale des données monétaires SQL est tronquée lors de la conversion du type de données, le pilote ODBC SQL Server Native Client renvoie un avertissement, et non une erreur.
SQL_BINARY (accepte les valeurs NULL) Quand vous êtes connecté à une instance de SQL Server version 6.0 et antérieure, si une colonne SQL_BINARY peut avoir la valeur Null, les données stockées dans la source de données ne sont pas remplies de zéros. Lorsque les données d’une telle colonne sont récupérées, le pilote ODBC SQL Server Native Client les tampons avec des zéros à droite. Toutefois, les données créées dans les opérations effectuées par SQL Server, telles que la concaténation, n’ont pas ce remplissage.

En outre, lorsque des données sont placées dans une telle colonne dans une instance de SQL Server 6.0 ou version antérieure, SQL Server tronque les données à droite si elles sont trop longues pour tenir dans la colonne.

Remarque : le pilote ODBC SQL Server Native Client prend en charge la connexion à SQL Server 6.5 et versions antérieures.
SQL_CHAR (troncation) Quand vous êtes connecté à une instance de SQL Server 6.0 et versions antérieures, et que les données sont placées dans une colonne SQL_CHAR, SQL Server les tronque à droite sans avertissement si les données sont trop longues pour tenir dans la colonne.

Remarque : le pilote ODBC SQL Server Native Client prend en charge la connexion à SQL Server 6.5 et versions antérieures.
SQL_CHAR (accepte les valeurs NULL) Quand vous êtes connecté à une instance de SQL Server 6.0 et versions antérieures, si une colonne SQL_CHAR peut avoir la valeur Null, les données stockées dans la source de données ne sont pas remplies de vides. Lorsque les données d’une telle colonne sont récupérées, le pilote ODBC SQL Server Native Client les pads avec des espaces à droite. Toutefois, les données créées dans les opérations effectuées par SQL Server, telles que la concaténation, n’ont pas ce remplissage.

Remarque : le pilote ODBC SQL Server Native Client prend en charge la connexion à SQL Server 6.5 et versions antérieures.
SQL_LONGVARBINARY, SQL_LONGVARCHAR, SQL_WLONGVARCHAR Mises à jour de colonnes avec des types de données SQL_LONGVARBINARY, SQL_LONGVARCHAR ou SQL_WLONGVARCHAR (à l’aide d’une clause WHERE) qui affectent plusieurs lignes sont entièrement pris en charge lorsqu’ils sont connectés à une instance de SQL Server 6. x et versions ultérieures. En cas de connexion à une instance de SQL Server 4.2x, une erreur S1000, « Insertion/mise à jour partielle. L'insertion ou la mise à jour d'un texte ou de colonnes d'images n'a pas abouti. » est retournée si la mise à jour affecte plusieurs lignes.

Remarque : le pilote ODBC SQL Server Native Client prend en charge la connexion à SQL Server 6.5 et versions antérieures.
Paramètres de fonction de chaîne string_exp paramètres des fonctions de chaîne doivent être de type de données SQL_CHAR ou SQL_VARCHAR. Les types de données SQL_LONG_VARCHAR ne sont pas pris en charge dans les fonctions de chaîne. Le paramètre count doit être inférieur ou égal à 8 000, car les types de données SQL_CHAR et SQL_VARCHAR sont limités à une longueur maximale de 8 000 caractères.
Littéraux d'heure Les littéraux d’heure, lorsqu’ils sont stockés dans une colonne SQL_TIMESTAMP (SQL Server types de données datetime ou smalldatetime), ont une valeur de date du 1er janvier 1900.
timestamp Seule une valeur NULL peut être insérée manuellement dans une colonne timestamp . Toutefois, étant donné que les colonnes timestampsont automatiquement mises à jour par SQL Server, une valeur NULL est remplacée.
tinyint Le type de données SQL Server tinyint n’est pas signé. Une colonne tinyint est liée à une variable de type de données SQL_C_UTINYINT par défaut.
Types de données alias Lorsqu’il est connecté à une instance de SQL Server 4.2x, le pilote ODBC ajoute NULL à une définition de colonne qui ne déclare pas explicitement la possibilité de valeur Null d’une colonne. Par conséquent, la possibilité de valeur NULL stockée dans la définition d'un type de données alias est ignorée.

Lorsqu’elles sont connectées à une instance de SQL Server 4.2x, les colonnes avec un type de données alias qui a un type de données de base char ou binaire et pour lesquelles aucune possibilité de valeur Null n’est déclarée sont créées en tant que type de données varchar ou varbinary. SQLColAttribute, SQLColumns et SQLDescribeCol retournent SQL_VARCHAR ou SQL_VARBINARY comme type de données pour ces colonnes. Les données qui sont récupérées de ces colonnes ne sont pas complétées.

Remarque : le pilote ODBC SQL Server Native Client prend en charge la connexion à SQL Server 6.5 et versions antérieures.
Types de données LONG les paramètres de données à l’exécution sont limités pour les types de données SQL_LONGVARBINARY et SQL_LONGVARCHAR.
Types de valeur élevée Le pilote ODBC SQL Server Native Client expose les types varchar(max), varbinary(max) et nvarchar(max) en tant que SQL_VARCHAR, SQL_VARBINARY et SQL_WVARCHAR (respectivement) dans les API qui acceptent ou retournent des types de données SQL ODBC.
Type défini par l'utilisateur (UDT) Les colonnes UDT sont mappées en tant que SQL_SS_UDT. Si une colonne UDT est mappée explicitement à un autre type dans l'instruction SQL à l'aide des méthodes ToString() ou ToXMLString() du type UDT, ou via les fonctions CAST/CONVERT, le type de la colonne dans le jeu de résultats reflète le type réel vers lequel la colonne a été convertie.

Le pilote ODBC SQL Server Native Client peut uniquement être lié à une colonne UDT en tant que binaire. SQL Server prend uniquement en charge la conversion entre les types de données SQL_SS_UDT et SQL_C_BINARY.
XML SQL Server convertira automatiquement du code XML en texte Unicode. Le type XML est mappé en tant que SQL_SS_XML.

Voir aussi

Traitement des résultats (ODBC)