Użycie typu danych

Dotyczy:sql ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Sterownik ODBC klienta natywnego programu SQL Server i program SQL Server nakładają następujące zastosowania typów danych.

Typ danych Ograniczenie
Literały daty Literały daty przechowywane w kolumnie SQL_TYPE_TIMESTAMP (typy danych programu SQL Server daty/godziny lub smalldatetime) mają wartość godziny 12:00:00.000 czasu.
pieniądze i małe pieniądze Istotne są tylko części całkowite pieniędzy i małych typów danych. Jeśli część dziesiętna danych pieniężnych SQL jest obcięta podczas konwersji typu danych, sterownik ODBC klienta natywnego programu SQL Server zwraca ostrzeżenie, a nie błąd.
SQL_BINARY (dopuszczana do wartości null) Po nawiązaniu połączenia z wystąpieniem programu SQL Server w wersji 6.0 lub starszej, jeśli kolumna SQL_BINARY ma wartość null, dane przechowywane w źródle danych nie są wypełnione zerami. Gdy dane z takiej kolumny są pobierane, sterownik ODBC klienta natywnego programu SQL Server udostępnia je zerami po prawej stronie. Jednak dane tworzone w operacjach wykonywanych przez program SQL Server, takie jak łączenie, nie mają takiego wypełnienia.

Ponadto, gdy dane są umieszczane w takiej kolumnie w wystąpieniu programu SQL Server 6.0 lub starszego, program SQL Server obcina dane po prawej stronie, jeśli jest zbyt długi, aby zmieścić się w kolumnie.

Uwaga: sterownik ODBC klienta natywnego programu SQL Server obsługuje nawiązywanie połączenia z programem SQL Server 6.5 i jego wcześniejszymi wersjami.
SQL_CHAR (obcinanie) Po nawiązaniu połączenia z wystąpieniem programu SQL Server 6.0 lub starszym, a dane są umieszczane w kolumnie SQL_CHAR, program SQL Server obcina go po prawej stronie bez ostrzeżenia, jeśli dane są zbyt długie, aby zmieścić się w kolumnie.

Uwaga: sterownik ODBC klienta natywnego programu SQL Server obsługuje nawiązywanie połączenia z programem SQL Server 6.5 i jego wcześniejszymi wersjami.
SQL_CHAR (dopuszczana do wartości null) Po nawiązaniu połączenia z wystąpieniem programu SQL Server 6.0 lub starszym, jeśli kolumna SQL_CHAR ma wartość null, dane przechowywane w źródle danych nie są wypełnione pustymi wartościami. Gdy dane z takiej kolumny są pobierane, sterownik ODBC klienta NATYWNego programu SQL Server udostępnia je z pustymi wartościami po prawej stronie. Jednak dane tworzone w operacjach wykonywanych przez program SQL Server, takie jak łączenie, nie mają takiego wypełnienia.

Uwaga: sterownik ODBC klienta natywnego programu SQL Server obsługuje nawiązywanie połączenia z programem SQL Server 6.5 i jego wcześniejszymi wersjami.
SQL_LONGVARBINARY, SQL_LONGVARCHAR, SQL_WLONGVARCHAR Aktualizacje kolumn z SQL_LONGVARBINARY, SQL_LONGVARCHAR lub SQL_WLONGVARCHAR typów danych (przy użyciu klauzuli WHERE), które mają wpływ na wiele wierszy, są w pełni obsługiwane w przypadku połączenia z wystąpieniem programu SQL Server 6. x i nowsze. Po nawiązaniu połączenia z wystąpieniem programu SQL Server 4.2x błąd S1000 "Częściowe wstawianie/aktualizacja. Nie powiodło się wstawianie/aktualizowanie kolumn tekstowych lub obrazów" jest zwracane, jeśli aktualizacja ma wpływ na więcej niż jeden wiersz.

Uwaga: sterownik ODBC klienta natywnego programu SQL Server obsługuje nawiązywanie połączenia z programem SQL Server 6.5 i jego wcześniejszymi wersjami.
Parametry funkcji string string_exp parametry funkcji ciągów muszą być typu danych SQL_CHAR lub SQL_VARCHAR. SQL_LONG_VARCHAR typy danych nie są obsługiwane w funkcjach ciągów. Parametr count musi być mniejszy lub równy 8000, ponieważ SQL_CHAR i SQL_VARCHAR typy danych są ograniczone do maksymalnej długości 8000 znaków.
Literały czasu Literały czasu przechowywane w kolumnie SQL_TIMESTAMP (typy danych programu SQL Server daty/godziny lub smalldatetime) mają wartość daty 1 stycznia 1900 r.
Znacznik czasu Tylko wartość NULL można ręcznie wstawić do kolumny znacznika czasu . Jednak ze względu na to, że kolumny sygnatury czasowej są automatycznie aktualizowane przez program SQL Server, wartość NULL jest zastępowana.
tinyint Typ danych tinyint programu SQL Server jest niepodpisany. Mała kolumna jest domyślnie powiązana ze zmienną typu danych SQL_C_UTINYINT.
Typy danych aliasu Po nawiązaniu połączenia z wystąpieniem programu SQL Server 4.2x sterownik ODBC dodaje wartość NULL do definicji kolumny, która nie deklaruje jawnie wartości null kolumny. W związku z tym wartość null przechowywana w definicji typu danych aliasu jest ignorowana.

Po nawiązaniu połączenia z wystąpieniem programu SQL Server 4.2x kolumny z typem danych aliasu, który ma podstawowy typ danych char lubbinarny i dla którego nie zadeklarowano wartości null, są tworzone jako varchar typu danych lub varbinary. Atrybuty SQLColAttribute, SQLColumns i SQLDescribeCol zwracają SQL_VARCHAR lub SQL_VARBINARY jako typ danych dla tych kolumn. Dane pobierane z tych kolumn nie są dopełniane.

Uwaga: sterownik ODBC klienta natywnego programu SQL Server obsługuje nawiązywanie połączenia z programem SQL Server 6.5 i jego wcześniejszymi wersjami.
Typy danych LONG Parametry wykonywania danych są ograniczone zarówno dla SQL_LONGVARBINARY, jak i SQL_LONGVARCHAR typów danych.
Duże typy wartości Sterownik ODBC klienta natywnego programu SQL Server uwidacznia typy varchar(max), varbinary(max)i nvarchar(max) jako SQL_VARCHAR, SQL_VARBINARY i SQL_WVARCHAR (odpowiednio) w interfejsach API, które akceptują lub zwracają typy danych SQL ODBC.
Typ zdefiniowany przez użytkownika (UDT) Kolumny UDT są mapowane jako SQL_SS_UDT. Jeśli kolumna UDT jest mapowana jawnie na inny typ instrukcji SQL przy użyciu metod ToString() lub ToXMLString() funkcji UDT lub za pośrednictwem funkcji CAST/CONVERT, typ kolumny w zestawie wyników będzie odzwierciedlać rzeczywisty typ, do którego kolumna została przekonwertowana.

Sterownik ODBC klienta natywnego programu SQL Server może wiązać się tylko z kolumną UDT jako binarną. Program SQL Server obsługuje tylko konwersję między typami danych SQL_SS_UDT i SQL_C_BINARY.
XML Program SQL Server automatycznie konwertuje kod XML na tekst Unicode. Typ XML jest mapowany jako SQL_SS_XML.