Eventos
Junte-se a nós na FabCon Vegas
31 de mar., 23 - 2 de abr., 23
O melhor evento liderado pela comunidade Microsoft Fabric, Power BI, SQL e AI. 31 de março a 2 de abril de 2025.
Registre-se hoje mesmoNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)
O tamanho do campo indica o número máximo de caracteres que são exigidos para representar dados em formato de caractere. O tamanho do campo já será conhecido se os dados forem armazenados no formato nativo; por exemplo, o tipo de dados int usa 4 bytes. Se você especificar 0 para o comprimento do prefixo, o comando bcp solicitará o tamanho do campo, os tamanhos de campo padrão e o impacto do tamanho de campo no armazenamento de dados em arquivos de dados que contêm dados char .
Se um comando bcp interativo contiver a opção in ou out sem a opção do arquivo de formatos (-f) ou uma opção do formato de dados (-n, -c, -w ou -N), o comando solicitará o comprimento de campo de cada campo de dados, da seguinte maneira:
Enter length of field <field_name> [<default>]:
Para obter um exemplo que mostra esse prompt no contexto, veja Especificar formatos de dados para compatibilidade usando bcp (SQL Server).
Observação
Depois que você especificar interativamente todos os campos em um comando bcp, o comando solicitará que salve suas respostas para cada campo em um arquivo de formato não XML. Para saber mais sobre arquivos de formato não XML, confira Arquivos de formato não XML (SQL Server).
A solicitação do comprimento do campo pelo comando bcp depende de vários fatores:
Quando você copiar tipos de dados que não são de comprimento fixo e especificar um comprimento de prefixo 0, o bcp solicitará um comprimento de campo.
Quando dados que não contêm caracteres são convertidos em dados de caracteres, o bcp sugere um comprimento de campo padrão grande o suficiente para armazenar os dados.
Se o tipo de armazenamento de arquivos for não caractere, o comando bcp não solicitará um comprimento de campo. Os dados são armazenados no formato de representação de dados nativo (formato nativo) do Microsoft SQL Server.
Geralmente, a Microsoft recomenda que você aceite os valores padrão sugeridos pelo bcp para o comprimento de campo. Quando um arquivo de dados de modo de caractere é criado, usar o tamanho do campo padrão assegura que os dados não serão truncados e que não ocorram erros de estouro numéricos.
Se você especificar um tamanho do campo incorreto, poderão ocorrer problemas. Por exemplo, se você copiar dados numéricos e especificar um tamanho do campo muito curto para obter os dados, o utilitário do bcp imprimirá uma mensagem de estouro e não copiará os dados. Além disso, se você exportar dados datetime e especificar um tamanho do campo menor que 26 bytes para a cadeia de caracteres, o utilitário do bcp truncará os dados sem uma mensagem de erro.
Importante
Quando a opção de tamanho padrão é usada, o SQL Server espera ler uma cadeia de caracteres inteira. Em algumas situações, o uso de um tamanho do campo padrão pode conduzir a um erro "fim de arquivo inesperado". Normalmente, esse erro acontece com os tipos de dados money e datetime quando apenas uma parte do campo esperado ocorre no arquivo de dados. Por exemplo, quando um valor datetime de mm/dd/aa é especificado sem o componente de hora, ficando, portanto, com um comprimento menor do que os 24 caracteres esperados para um valor de datetime no formato char . Para evitar esse tipo de erro, use terminadores de campos ou campos de dados de comprimento fixo ou altere o tamanho do campo padrão especificando outro valor.
A tabela a seguir lista os tamanhos dos campos padrão para obter os dados a serem armazenados como armazenamento de arquivo de caractere. Dados anuláveis são do mesmo comprimento que dados de não anuláveis.
Tipo de dados | Comprimento padrão (caracteres) |
---|---|
char | Comprimento definido para a coluna |
varchar | Comprimento definido para a coluna |
nchar | Duas vezes o comprimento definido para a coluna |
nvarchar | Duas vezes o comprimento definido para a coluna |
Text | 0 |
ntext | 0 |
bit | 1 |
binary | Duas vezes o comprimento definido para a coluna + 1 |
varbinary | Duas vezes o comprimento definido para a coluna + 1 |
imagem | 0 |
datetime | 24 |
smalldatetime | 24 |
float | 30 |
real | 30 |
int | 12 |
bigint | 19 |
smallint | 7 |
tinyint | 5 |
money | 30 |
smallmoney | 30 |
decimal | 41* |
numeric | 41* |
uniqueidentifier | 37 |
timestamp | 17 |
varchar(max) | 0 |
varbinary(max) | 0 |
nvarchar(max) | 0 |
UDT | Comprimento da coluna UDT (termo definido pelo usuário) |
XML | 0 |
Para obter mais informações sobre os tipos de dados decimal e numérico, confira Decimal e numérico (Transact-SQL).
Observação
Uma coluna do tipo tinyint pode ter valores de 0 a 255; o número de máximo de caracteres necessários para representar qualquer número nesse intervalo é três (representando valores de 100 a 255).
A tabela seguinte lista os tamanhos dos campos padrão para os dados a serem armazenados como um tipo de armazenamento de arquivo nativo. Dados anuláveis são do mesmo comprimento que dados de não anuláveis e os dados de caractere sempre são armazenados em formato de caractere.
Tipo de dados | Comprimento padrão (caracteres) |
---|---|
bit | 1 |
binary | Comprimento definido para a coluna |
varbinary | Comprimento definido para a coluna |
imagem | 0 |
datetime | 8 |
smalldatetime | 4 |
float | 8 |
real | 4 |
int | 4 |
bigint | 8 |
smallint | 2 |
tinyint | 1 |
money | 8 |
smallmoney | 4 |
decimal | * |
numeric | * |
uniqueidentifier | 16 |
timestamp | 8 |
Para obter mais informações sobre os tipos de dados decimal e numérico, confira Decimal e numérico (Transact-SQL).
Em todos os casos anteriores, para criar um arquivo de dados para recarregar posteriormente no SQL Server que mantenha o espaço de armazenamento em um mínimo, use um prefixo de comprimento com o tipo de armazenamento de arquivo padrão e o tamanho do campo padrão.
Utilitário bcp
Tipos de dados (Transact-SQL)
Especificar terminadores de campo e linha (SQL Server)
Especificar o tamanho de prefixo em arquivos de dados usando bcp (SQL Server)
Especificar tipo de armazenamento de arquivo usando bcp (SQL Server)
Manter valores nulos ou use os valores padrão durante a importação em massa (SQL Server)
Eventos
Junte-se a nós na FabCon Vegas
31 de mar., 23 - 2 de abr., 23
O melhor evento liderado pela comunidade Microsoft Fabric, Power BI, SQL e AI. 31 de março a 2 de abril de 2025.
Registre-se hoje mesmoTreinamento
Módulo
Escolher o tipo de dados correto em seu código C# - Training
Escolha o tipo de dados correto para seu código de vários tipos básicos usados em C#.
Documentação
Especificar o tipo de armazenamento de arquivos com o bcp - SQL Server
Use o bcp para exportar dados para um arquivo como o tipo de tabela de banco de dados, na representação de caracteres ou como um tipo de dados que dê suporte à conversão implícita.
Especificar o tamanho do prefixo em arquivos de dados com o bcp - SQL Server
Este artigo descreve o campo de prefixo, que codifica o tamanho de um campo para fornecer armazenamento de arquivos compactados para exportação em massa em formato nativo para um arquivo de dados.
Criar um arquivo de formato com bcp (SQL Server) - SQL Server
Quando você importa ou exporta em massa uma tabela do SQL Server, um arquivo de formato permite gravar arquivos de dados com pouca edição ou ler arquivos de dados de outros programas.