Partilhar via


Uso do tipo de dados

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

O driver ODBC do SQL Server Native Client e o SQL Server impõem o seguinte uso de tipos de dados.

Tipo de dados Limitação
Literais de data Os literais de data, quando armazenados em uma coluna SQL_TYPE_TIMESTAMP (tipos de dados do SQL Server de datetime ou smalldatetime), têm um valor de hora de 12:00:00.000 A.M.
money e smallmoney Apenas as partes inteiras dos tipos de dados money e smallmoney são significativas. Se a parte decimal dos dados monetários do SQL for truncada durante a conversão do tipo de dados, o driver ODBC do SQL Server Native Client retornará um aviso, não um erro.
SQL_BINARY (nullable) Quando conectado a uma instância do SQL Server versão 6.0 e anterior, se uma coluna SQL_BINARY for anulável, os dados armazenados na fonte de dados não serão preenchidos com zeros. Quando os dados dessa coluna são recuperados, o driver ODBC do SQL Server Native Client os preenche com zeros à direita. No entanto, os dados criados em operações executadas pelo SQL Server, como concatenação, não têm esse preenchimento.

Além disso, quando os dados são colocados em uma coluna em uma instância do SQL Server 6.0 ou anterior, o SQL Server trunca os dados à direita se forem muito longos para caber na coluna.

Observação: o driver ODBC do SQL Server Native Client oferece suporte à conexão com o SQL Server 6.5 e versões anteriores.
SQL_CHAR (truncation) Quando conectado a uma instância do SQL Server 6.0 e versões anteriores, e os dados são colocados em uma coluna SQL_CHAR, o SQL Server os trunca à direita sem aviso se os dados forem muito longos para caber na coluna.

Observação: o driver ODBC do SQL Server Native Client oferece suporte à conexão com o SQL Server 6.5 e versões anteriores.
SQL_CHAR (nullable) Quando conectado a uma instância do SQL Server 6.0 e versões anteriores, se uma coluna SQL_CHAR for anulável, os dados armazenados na fonte de dados não serão preenchidos com espaços em branco. Quando os dados dessa coluna são recuperados, o driver ODBC do SQL Server Native Client os preenche com espaços em branco à direita. No entanto, os dados criados em operações executadas pelo SQL Server, como concatenação, não têm esse preenchimento.

Observação: o driver ODBC do SQL Server Native Client oferece suporte à conexão com o SQL Server 6.5 e versões anteriores.
SQL_LONGVARBINARY, SQL_LONGVARCHAR, SQL_WLONGVARCHAR Atualizações de colunas com tipos de dados SQL_LONGVARBINARY, SQL_LONGVARCHAR ou SQL_WLONGVARCHAR (usando uma cláusula WHERE) que afetam várias linhas têm suporte total quando conectadas a uma instância do SQL Server 6.x e posteriores. Quando conectado a uma instância do SQL Server 4.2x, um erro S1000, "Inserção/atualização parcial. A inserção/atualização de coluna(s) de text ou imagem não foi concluída com êxito" será retornado se a atualização afetar mais de uma linha.

Observação: o driver ODBC do SQL Server Native Client oferece suporte à conexão com o SQL Server 6.5 e versões anteriores.
Parâmetros de função de cadeia de caracteres string_exp parâmetros para as funções de cadeia de caracteres devem ser do tipo de dados SQL_CHAR ou SQL_VARCHAR. Não há suporte para os tipos de dados SQL_LONG_VARCHAR nas funções de cadeia de caracteres. O parâmetro count deve ser menor ou igual a 8.000 porque os tipos de dados SQL_CHAR e SQL_VARCHAR são limitados a um comprimento máximo de 8.000 caracteres.
Literais de hora Os literais de tempo, quando armazenados em uma coluna SQL_TIMESTAMP (tipos de dados do SQL Server de datetime ou smalldatetime), têm um valor de data de 1º de janeiro de 1900.
timestamp Somente um valor NULL pode ser inserido manualmente em uma coluna de carimbo de data/hora . No entanto, como as colunas de carimbo de data/horasão atualizadas automaticamente pelo SQL Server, um valor NULL é substituído.
tinyint O tipo de dados tinyint do SQL Server não é assinado. Uma coluna tinyint é vinculada a uma variável do tipo de dados SQL_C_UTINYINT por padrão.
Tipos de dados de alias Quando conectado a uma instância do SQL Server 4.2x, o driver ODBC adiciona NULL a uma definição de coluna que não declara explicitamente a nulidade de uma coluna. Portanto, a nulidade armazenada na definição de um tipo de dados de alias é ignorada.

Quando conectadas a uma instância do SQL Server 4.2x, as colunas com um tipo de dados de alias que tem um tipo de dados base de char ou binário e para as quais nenhuma nulidade é declarada são criadas como tipo de dados varchar ou varbinary. SQLColAttribute, SQLColumns e SQLDescribeCol retornam SQL_VARCHAR ou SQL_VARBINARY como o tipo de dados para essas colunas. Os dados recuperados dessas colunas não são preenchidos.

Observação: o driver ODBC do SQL Server Native Client oferece suporte à conexão com o SQL Server 6.5 e versões anteriores.
Tipos de dados LONG Os parâmetros de dados em execução são restritos para os tipos de dados SQL_LONGVARBINARY e SQL_LONGVARCHAR.
Tipos de valor grande O driver ODBC do SQL Server Native Client exporá os tipos varchar(max), varbinary(max) e nvarchar(max) como SQL_VARCHAR, SQL_VARBINARY e SQL_WVARCHAR (respectivamente) em APIs que aceitam ou retornam tipos de dados SQL ODBC.
UDT (tipo definido pelo usuário) As colunas UDT são mapeadas como SQL_SS_UDT. Se você mapear uma coluna UDT explicitamente para outro tipo na instrução SQL usando os métodos ToString() ou ToXMLString() do UDT, ou as funções CAST/CONVERT, o tipo de coluna no conjunto de resultados refletirá o tipo para o qual a coluna foi convertida.

O driver ODBC do SQL Server Native Client só pode ser associado a uma coluna UDT como binário. O SQL Server só dá suporte à conversão entre os tipos de dados SQL_SS_UDT e SQL_C_BINARY.
XML O SQL Server converterá automaticamente XML em texto Unicode. O tipo XML é mapeado como SQL_SS_XML.

Confira também

Processando resultados (ODBC)