Использование типов данных

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)

Драйвер ODBC SQL Server Native Client и SQL Server применять следующие типы данных.

Тип данных Ограничение
Литералы даты Литералы даты, хранящиеся в столбце SQL_TYPE_TIMESTAMP (SQL Server типах данных datetime или smalldatetime), имеют значение времени 12:00:00.000.
money и smallmoney Важное значение имеют только целочисленные части типов данных money и smallmoney . Если десятичная часть денежных данных SQL усечена во время преобразования типов данных, драйвер ODBC SQL Server Native Client возвращает предупреждение, а не ошибку.
SQL_BINARY (допускающий значения NULL) При подключении к экземпляру SQL Server версии 6.0 и более ранних, если столбец SQL_BINARY допускает значение NULL, данные, хранящиеся в источнике данных, не заполняются нулями. При извлечении данных из такого столбца драйвер ODBC SQL Server Native Client заполняет его нулями справа. Однако данные, созданные в операциях, выполняемых SQL Server, таких как объединение, не имеют такого заполнения.

Кроме того, если данные помещаются в такой столбец в экземпляре SQL Server 6.0 или более ранней версии, SQL Server усекает данные справа, если они слишком длинные, чтобы поместиться в столбец.

Примечание. Драйвер ODBC SQL Server Native Client поддерживает подключение к SQL Server 6.5 и более ранним версиям.
SQL_CHAR (усечение) При подключении к экземпляру SQL Server 6.0 и более ранних версий данные помещаются в столбец SQL_CHAR, SQL Server усекает их справа без предупреждения, если данные слишком длинные, чтобы поместиться в столбец.

Примечание. Драйвер ODBC SQL Server Native Client поддерживает подключение к SQL Server 6.5 и более ранним версиям.
SQL_CHAR (допускающий значения NULL) При подключении к экземпляру SQL Server 6.0 и более ранних версий, если столбец SQL_CHAR допускает значение NULL, данные, хранящиеся в источнике данных, не заполняются пробелами. При извлечении данных из такого столбца драйвер ODBC SQL Server Native Client заполняет его пустыми полями справа. Однако данные, созданные в операциях, выполняемых SQL Server, таких как объединение, не имеют такого заполнения.

Примечание. Драйвер ODBC SQL Server Native Client поддерживает подключение к SQL Server 6.5 и более ранним версиям.
SQL_LONGVARBINARY, SQL_LONGVARCHAR, SQL_WLONGVARCHAR Обновления столбцов с типами данных SQL_LONGVARBINARY, SQL_LONGVARCHAR или SQL_WLONGVARCHAR (с помощью предложения WHERE), которые влияют на несколько строк, полностью поддерживаются при подключении к экземпляру SQL Server 6. x и более поздних версий. При подключении к экземпляру SQL Server 4.2x возникает ошибка S1000 "Частичная вставка/обновление. Вставка или обновление столбца text или image не завершено», если обновление затрагивает более одной строки.

Примечание. Драйвер ODBC SQL Server Native Client поддерживает подключение к SQL Server 6.5 и более ранним версиям.
Параметры строковых функций string_exp параметры строковых функций должны иметь тип данных SQL_CHAR или SQL_VARCHAR. Типы данных SQL_LONG_VARCHAR не поддерживаются в строковых функциях. Значение параметра count должно быть меньше или равно 8000, так как SQL_CHAR и SQL_VARCHAR типы данных ограничены максимальной длиной 8000 символов.
Литералы времени Литералы времени, хранящиеся в столбце SQL_TIMESTAMP (SQL Server типах данных datetime или smalldatetime), имеют значение даты 1 января 1900 г.
timestamp В столбец метки времени можно вручную вставить только значение NULL. Однако поскольку столбцы меток времениавтоматически обновляются SQL Server, значение NULL перезаписывается.
tinyint Тип данных SQL Server tinyint не подписан. Столбец tinyint привязан к переменной типа данных, SQL_C_UTINYINT по умолчанию.
Псевдонимы типов данных При подключении к экземпляру SQL Server 4.2x драйвер ODBC добавляет значение NULL в определение столбца, которое явно не объявляет допустимость значений NULL для столбца. Поэтому допустимость значений NULL, помещенная в определение псевдонима типа данных, не учитывается.

При подключении к экземпляру SQL Server 4.2x столбцы с псевдонимом типа данных с базовым типом данных char или binary и для которых не объявлена допустимость значений NULL, создаются как тип данных varchar или varbinary. SQLColAttribute, SQLColumns и SQLDescribeCol возвращают SQL_VARCHAR или SQL_VARBINARY в качестве типа данных для этих столбцов. Данные, полученные из этих столбцов, не заполнены.

Примечание. Драйвер ODBC SQL Server Native Client поддерживает подключение к SQL Server 6.5 и более ранним версиям.
Типы данных большой длины Параметры данных при выполнении ограничены как для SQL_LONGVARBINARY, так и для SQL_LONGVARCHAR типов данных.
Типы больших значений Драйвер SQL SERVER NATIVE CLIENT ODBC будет предоставлять типы varchar(max), varbinary(max) и nvarchar(max) как SQL_VARCHAR, SQL_VARBINARY и SQL_WVARCHAR (соответственно) в API, которые принимают или возвращают типы данных ODBC SQL.
Определяемый пользователем тип Столбцы определяемого пользователем типа преобразуются в тип данных SQL_SS_UDT. Если столбец определяемого пользователем типа явно сопоставлен с другим типом в инструкции SQL с помощью методов ToString() или ToXMLString() определяемого пользователем типа или с помощью функций CAST/CONVERT, то тип столбца в результирующем наборе будет отражать реальный тип, к которому столбец был преобразован.

Драйвер ODBC SQL Server Native Client может привязаться только к столбцу определяемого пользователем типа как двоичный. SQL Server поддерживает только преобразование между SQL_SS_UDT и SQL_C_BINARY типами данных.
XML SQL Server автоматически преобразует XML в текст Юникода. Тип XML преобразуется в SQL_SS_XML.

См. также:

Обработка результатов (ODBC)