Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode usar a instrução tsql INSERT para carregar dados em uma tabela SQL Server PDW (parallel Data Warehouse) distribuída ou replicada. Para obter mais informações sobre INSERT, consulte INSERT. Para tabelas replicadas e todas as colunas de não distribuição em uma tabela distribuída, o PDW usa o SQL Server para converter implicitamente os valores de dados especificados na instrução para o tipo de dados da coluna de destino. Para obter mais informações sobre regras de conversão de dados do SQL Server, consulte Conversão de tipo de dados para SQL. No entanto, para colunas de distribuição, o PDW dá suporte apenas a um subconjunto de conversões implícitas compatíveis com o SQL Server. Portanto, quando você usa a INSERT instrução para carregar dados em uma coluna de distribuição, os dados de origem devem ser especificados em um dos formatos definidos nas tabelas a seguir.
Inserir literais em tipos binários
A tabela a seguir define os tipos literais aceitos, o formato e as regras de conversão para inserir um valor literal em uma coluna de distribuição do tipo binário (n) ou varbinary(n).
| Tipo literal | Formato | Regras de conversão |
|---|---|---|
| Literal binário | 0xhexadecimal_string Exemplo: 0x12Ef |
Literais binários devem ser prefixados com 0x. O comprimento da fonte de dados não pode exceder o número de bytes especificados para o tipo de dados. Se o comprimento da fonte de dados for menor que o tamanho do tipo de dados binário, os dados serão preenchidos à direita com zeros para atingir o tamanho do tipo de dados. |
Inserir literais nos tipos de data e hora
Os literais de data e hora são representados usando valores de caracteres em formatos específicos, colocados entre aspas únicas. As tabelas a seguir definem os tipos literais permitidos, o formato e as regras de conversão para inserir um literal de data ou hora em uma coluna de distribuição PDW do SQL Server do tipo datetime, smalldatetime, date, time, datetimeoffset ou datetime2.
tipo de dados data e hora
A tabela a seguir define os formatos e as regras aceitos para inserir valores literais em uma coluna de distribuição do datetime do tipo. Qualquer cadeia de caracteres vazia ('') é convertida no valor padrão '1900-01-01 12:00:00.000'. Cadeias de caracteres que contêm apenas espaços em branco (' ') geram um erro.
| Tipo literal | Formato | Regras de conversão |
|---|---|---|
| Literal de cadeia de caracteres no formato datetime | 'YYYY-MM-DD hh:mm:ss[.nnn]' Exemplo: '2007-05-08 12:35:29.123' |
Dígitos fracionários ausentes são definidos como 0 quando o valor é inserido. Por exemplo, o literal “2007-05-08 12:35” é inserido como “2007-05-08 12:35:00.000”. |
| Literal de cadeia de caracteres no formato smalldatetime | 'YYYY-MM-DD hh:mm' Exemplo: '2007-05-08 12:35' |
Segundos e dígitos fracionários restantes são definidos como 0 quando o valor é inserido. |
| Literal de cadeia de caracteres no formato date | 'YYYY-MM-DD' Exemplo: '2007-05-08' |
Os valores de tempo (hora, minutos, segundos e frações) são definidos como 12:00:00.000 quando o valor é inserido. |
| Literal de cadeia de caracteres no formato datetime2 | 'YYYY-MM-DD hh:mm:ss.nnnnnnn' Exemplo: '2007-05-08 12:35:29.1234567' |
Os dados de origem não podem exceder três dígitos fracionários. Por exemplo, o literal '2007-05-08 12:35:29.123' será inserido, mas o valor '2007-05-08 12:35:29.1234567' gera um erro. |
tipo de dados smalldatetime
A tabela a seguir define os formatos e as regras aceitos para inserir valores literais em uma coluna de distribuição do tipo smalldatetime. Qualquer cadeia de caracteres vazia ('') é convertida no valor padrão '1900-01-01 12:00'. Cadeias de caracteres que contêm apenas espaços em branco (' ') geram um erro.
| Tipo literal | Formato | Regras de conversão |
|---|---|---|
| Literal de cadeia de caracteres no formato smalldatetime | 'YYYY-MM-DD hh:mm' ou 'YYYY-MM-DD hh:mm:00' Exemplo: '2007-05-08 12:00' ou '2007-05-08 12:00:00' |
Os dados de origem devem ter valores para ano, mês, data, hora e minuto. Segundos são opcionais e, se presentes, devem ser definidos como o valor 00. Qualquer outro valor gera um erro. |
| Literal de cadeia de caracteres no formato date | 'YYYY-MM-DD' Exemplo: '2007-05-08' |
Os valores de tempo (hora, minutos, segundos e frações) são definidos como 0 quando o valor é inserido. |
Tipo de dados date
A tabela a seguir define os formatos e regras aceitos para inserir valores literais em uma coluna de distribuição do tipo date. Qualquer cadeia de caracteres vazia ('') é convertida no valor padrão '1900-01-01'. Cadeias de caracteres que contêm apenas espaços em branco (' ') geram um erro.
| Tipo literal | Formato | Regras de conversão |
|---|---|---|
| Literal de cadeia de caracteres no formato date | 'YYYY-MM-DD' Exemplo: '2007-05-08' |
Esse é o único formato aceito. |
Tipo de dados time
A tabela a seguir define os formatos e regras aceitos para inserir valores literais em uma coluna de distribuição do tipo time. Qualquer cadeia de caracteres vazia ('') é convertida no valor padrão '00:00:00.0000'. Cadeias de caracteres que contêm apenas espaços em branco (' ') geram um erro.
| Tipo literal | Formato | Regras de conversão |
|---|---|---|
| Literal de cadeia de caracteres no formato time | 'hh:mm:ss.nnnnnnn' Exemplo: '12:35:29.1234567' |
Se a fonte de dados tiver uma precisão menor ou igual (número de dígitos fracionários) do que a precisão do tipo de dados time, os dados serão preenchidos à direita com zeros. Por exemplo, um valor literal '12:35:29.123' é inserido como '12:35:29.1230000'. Um valor que tem uma precisão maior do que o tipo de dados de destino é rejeitado. |
tipo de dados datetimeoffset
A tabela a seguir define os formatos e as regras aceitos para inserir valores literais em uma coluna de distribuição do tipo datetimeoffset (n). O formato padrão é 'YYYY-MM-DD hh:mm:ss.nnnnnnn {+|-}hh:mm'. Uma cadeia de caracteres vazia ('') é convertida no valor padrão '1900-01-01 12:00:00.0000000 +00:00'. Cadeias de caracteres que contêm apenas espaços em branco (' ') geram um erro. O número de dígitos fracionários depende da definição da coluna. Por exemplo, uma coluna definida como datetimeoffset (2) terá dois dígitos fracionários.
| Tipo literal | Formato | Regras de conversão |
|---|---|---|
| Literal de cadeia de caracteres no formato datetime | 'YYYY-MM-DD hh:mm:ss[.nnn]' Exemplo: '2007-05-08 12:35:29.123' |
Os dígitos fracionários ausentes são definidos como 0 quando os valores de deslocamento são inseridos. Por exemplo, o literal '2007-05-08 12:35:29.123' é inserido como '2007-05-08 12:35:29.1230000 +00:00'. |
| Literal de cadeia de caracteres no formato smalldatetime | 'YYYY-MM-DD hh:mm' Exemplo: '2007-05-08 12:35' |
Segundos, dígitos fracionários restantes e valores de deslocamento são definidos como 0 quando o valor é inserido. |
| Literal de cadeia de caracteres no formato date | 'YYYY-MM-DD' Exemplo: '2007-05-08' |
Os valores de tempo (hora, minutos, segundos e frações) são definidos como 0 quando o valor é inserido. Por exemplo, o literal '2007-05-08' é inserido como '2007-05-08 00:00:00.0000000 +00:00'. |
| Literal de cadeia de caracteres no formato datetime2 | 'YYYY-MM-DD hh:mm:ss.nnnnnnn' Exemplo: '2007-05-08 12:35:29.1234567' |
Os dados de origem não podem exceder o número especificado de segundos fracionários na coluna datetimeoffset. Se a fonte de dados tiver um número menor ou igual de segundos fracionários, os dados serão preenchidos à direita com zeros. Por exemplo, se o tipo de dados for datetimeoffset (5), o valor literal “2007-05-08 12:35:29.123 +12:15” será inserido como “12:35:29.12300 +12:15”. |
| Literal de cadeia de caracteres no formato datetimeoffset | 'YYYY-MM-DD hh:mm:ss.nnnnnnn (+|-) hh:mm' Exemplo: '2007-05-08 12:35:29.1234567 +12:15' |
Os dados de origem não podem exceder o número especificado de segundos fracionários na coluna datetimeoffset. Se a fonte de dados tiver um número menor ou igual de segundos fracionários, os dados serão preenchidos à direita com zeros. Por exemplo, se o tipo de dados for datetimeoffset (5), o valor literal “2007-05-08 12:35:29.123 +12:15” será inserido como “12:35:29.12300 +12:15”. |
tipo de dados datetime2
A tabela a seguir define os formatos e as regras aceitos para inserir valores literais em uma coluna de distribuição do tipo datetime2 (n). O formato padrão é 'YYYY-MM-DD hh:mm:ss.nnnnnnn'. Uma cadeia de caracteres vazia ('') é convertida no valor padrão '1900-01-01 12:00:00'. Cadeias de caracteres que contêm apenas espaços em branco (' ') geram um erro. O número de dígitos fracionários depende da definição da coluna. Por exemplo, uma coluna definida como datetime2 (2) terá dois dígitos fracionários.
| Tipo literal | Formato | Regras de conversão |
|---|---|---|
| Literal de cadeia de caracteres no formato datetime | 'YYYY-MM-DD hh:mm:ss[.nnn]' Exemplo: '2007-05-08 12:35:29.123' |
Segundos fracionários são opcionais e são definidos como 0 quando o valor é inserido. Um valor que tem mais dígitos fracionários do que o tipo de dados de destino é rejeitado. |
| Literal de cadeia de caracteres no formato smalldatetime | 'YYYY-MM-DD hh:mm' Exemplo: '2007-05-08 12' |
Segundos opcionais e dígitos fracionários restantes são definidos como 0 quando o valor é inserido. |
| Literal de cadeia de caracteres no formato date | 'YYYY-MM-DD' Exemplo: '2007-05-08' |
Os valores de tempo (hora, minutos, segundos e frações) são definidos como 0 quando o valor é inserido. Por exemplo, o literal '2007-05-08' é inserido como '2007-05-08 12:00:00.00000000'. |
| Literal de cadeia de caracteres no formato datetime2 | 'YYYY-MM-DD hh:mm:ss:nnnnnnn' Exemplo: '2007-05-08 12:35:29.1234567' |
Se a fonte de dados contiver componentes de data e hora menores ou iguais ao valor especificado em datetime2(n), os dados serão inseridos; caso contrário, um erro é gerado. |
Inserir literais em tipos numéricos
As tabelas a seguir definem os formatos aceitos e as regras de conversão para inserir um valor literal em uma coluna de distribuição PDW do SQL Server que usa um tipo numérico.
tipo de dados bit
A tabela a seguir define os formatos e as regras aceites para inserir valores literais em uma coluna de distribuição do tipo bit. Uma cadeia de caracteres vazia ('') ou uma cadeia de caracteres que contém apenas espaços em branco (' ') é convertida em 0.
| Tipo literal | format | Regras de conversão |
|---|---|---|
| Literal de cadeia de caracteres no formato integer | 'nnnnnnnnnn' Exemplo: '1' ou '321' |
Um valor inteiro formatado como um literal de cadeia de caracteres não pode conter um valor negativo. Por exemplo, o valor '-123' gera um erro. Um valor maior que 1 é convertido em 1. Por exemplo, o valor '123' é convertido em 1. |
| Literal de cadeia de caracteres | 'TRUE' ou 'FALSE' Exemplo: 'true' |
O valor 'TRUE' é convertido em 1; o valor 'FALSE' é convertido em 0. |
| Literal inteiro | nnnnnnnn Exemplo: 1 ou 321 |
Um valor maior que 1 ou menos de 0 é convertido em 1. Por exemplo, os valores 123 e -123 são convertidos em 1. |
| Literal decimal | nnnnn.nnnn Exemplo: 1234.5678 |
Um valor maior que 1 ou menos de 0 é convertido em 1. Por exemplo, os valores 123,45 e -123,45 são convertidos em 1. |
tipo de dados decimal
A tabela a seguir define os formatos e as regras aceitos para inserir valores literais em uma coluna de distribuição do tipo decimal (p,s). As regras de conversão de dados são as mesmas do SQL Server. Para obter mais informações, consulte Conversão de tipo de dados no MSDN.
| Tipo literal | Formato |
|---|---|
| Literal de cadeia de caracteres no formato integer | 'nnnnnnnnnnnn' Exemplo: '321312313123' |
| Literal de cadeia de caracteres em formato decimal | 'nnnnnn.nnnnn' Exemplo: '123344.34455' |
| Literal inteiro | nnnnnnnnnnnn Exemplo: 321312313123 |
| Literal decimal | nnnnnn.nnnnn Exemplo: '123344.34455' |
Tipos de dados flutuantes e reais
A tabela a seguir define os formatos e as regras aceitos para inserir valores literais em uma coluna de distribuição do tipo float ou real. As regras de conversão de dados são as mesmas do SQL Server. Para obter mais informações, consulte Conversão de tipo de dados no MSDN.
| Tipo literal | Formato |
|---|---|
| Literal de cadeia de caracteres no formato integer | 'nnnnnnnnnnnn' Exemplo: '321312313123' |
| Literal de cadeia de caracteres em formato decimal | 'nnnnnn.nnnnn' Exemplo: '123344.34455' |
| Literal de cadeia de caracteres no formato floating point | 'n.nnnnnE+nn' Exemplo: '3.12323E+14' |
| Literal inteiro | nnnnnnnnnnnn Exemplo: 321312313123 |
| Literal decimal | nnnnnn.nnnnn Exemplo: 123344.34455 |
| Literal de ponto flutuante | n.nnnnnE+nn Exemplo: 3.12323E+14 |
tipos de dados int, bigint, tinyint, smallint
A tabela a seguir define os formatos e as regras aceitos para inserir valores literais em uma coluna de distribuição de tipo int, bigint, tinyint ou smallint. A fonte de dados não pode exceder o intervalo permitido para o tipo de dados fornecido. Por exemplo, o intervalo de tinyint é de 0 a 255 e o intervalo para int é de -2.147.483.648 a 2.147.483.647.
| Tipo literal | Formato | Regras de conversão |
|---|---|---|
| Literal de cadeia de caracteres no formato integer | 'nnnnnnnnnnnnnn' Exemplo: '321312313123' |
None |
| Literal inteiro | nnnnnnnnnnnnnn Exemplo: 321312313123 |
None |
| Literal decimal | nnnnnn.nnnnn Exemplo: 123344.34455 |
Os valores à direita do ponto decimal são truncados. |
Tipos de dados money e smallmoney
Valores literais de dinheiro são representados como números com um ponto decimal opcional e um símbolo de moeda como prefixo. A fonte de dados não pode exceder o intervalo permitido para o tipo de dados fornecido. Por exemplo, o intervalo de dinheiro pequeno é -214.748.3648 a 214.748.3647 e o intervalo para dinheiro é -922.337.203.685.477.5808 a 922.337.203.685.477.5807. A tabela a seguir define os formatos e as regras aceitos para inserir valores literais em uma coluna de distribuição do tipo dinheiro ou smallmoney.
| Tipo literal | Formato | Regras de conversão |
|---|---|---|
| Literal de cadeia de caracteres no formato integer | 'nnnnnnnn' Exemplo: '123433' |
Dígitos ausentes após o ponto decimal são definidos como 0 quando o valor é inserido. Por exemplo, o literal '12345' é inserido como 12345.0000. |
| Literal de cadeia de caracteres em formato decimal | 'nnnnnn.nnnnn' Exemplo: '123344.34455' |
Se o número de dígitos após o ponto decimal exceder 4, o valor será arredondado para o valor mais próximo. Por exemplo, o valor '123344.34455' é inserido como 123344.3446. |
| Literal de cadeia de caracteres em formato money | ‘$nnnnnn.nnnn’ Exemplo: '$123456.7890' |
O símbolo de moeda opcional não é inserido com o valor. Se o número de dígitos após o ponto decimal exceder 4, o valor será arredondado para o valor mais próximo. |
| Literal inteiro | nnnnnnnn Exemplo: 123433 |
Dígitos ausentes após o ponto decimal são definidos como 0 quando o valor é inserido. Por exemplo, o literal 12345 é inserido como 12345.0000. |
| Literal decimal | nnnnnn.nnnnn Exemplo: 123344.34455 |
Se o número de dígitos após o ponto decimal exceder 4, o valor será arredondado para o valor mais próximo. Por exemplo, o valor 123344.34455 é inserido como 123344.3446. |
| Literal de money | $nnnnnn.nnnn Exemplo: $123456.7890 |
O símbolo de moeda opcional não é inserido com o valor. Se o número de dígitos após o ponto decimal exceder 4, o valor será arredondado para o valor mais próximo. |
Inserindo literais em tipos de cadeia de caracteres
As tabelas a seguir definem os formatos aceitos e as regras de conversão para inserir um valor literal em uma coluna PDW do SQL Server que usa um tipo de cadeia de caracteres.
tipos de dados char, varchar, nchar e nvarchar
A tabela a seguir define os formatos e as regras aceitos para inserir valores literais em uma coluna de distribuição do tipo char, varchar, nchar e nvarchar. O comprimento da fonte de dados não pode exceder o tamanho especificado para o tipo de dados. Se o tamanho da fonte de dados for menor que o tamanho do tipo de dados char ou nchar , os dados serão adicionados à direita com espaços em branco para alcançar o tamanho do tipo de dados.
| Tipo literal | Formato | Regras de conversão |
|---|---|---|
| Literal de cadeia de caracteres | Formato: 'cadeia de caracteres' Exemplo: 'abc' |
None |
| Literal de cadeia de caracteres Unicode | Formato: N'character string' Exemplo: N'abc' |
None |
| Literal inteiro | Formato: nnnnnnnnnnn Exemplo: 321312313123 |
None |
| Literal decimal | Formato: nnnnnn.nnnnnnn Exemplo: 12344.34455 |
None |
| Literal de money | Formato (valor numérico): $nnnnnn.nnnnn Exemplo: $123456.99 |
O símbolo de moeda não é inserido com o valor. Para inserir o símbolo da moeda, insira o valor como um literal de cadeia de caracteres. Isso corresponderá ao formato da ferramenta dwloader , que trata cada literal como um literal de cadeia de caracteres. Vírgulas não são permitidas. Se o número de dígitos após o ponto decimal exceder 2, o valor será arredondado até o valor mais próximo. Por exemplo, o valor 123.946789 é inserido como 123,95. Somente o estilo padrão 0 (sem vírgulas e 2 dígitos após o ponto decimal) é permitido ao usar a função CONVERT para inserir literais de dinheiro. |