当以本机格式将数据大容量导出到数据文件时,为使文件存储空间最为紧凑,bcp 命令将在每个字段前面使用一个或多个字符来指示字段的长度。 这些字符称为“长度前缀字符”。

bcp 的前缀长度提示


如果某个交互式 bcp 命令包含不带格式化文件开关 (-f) 或数据格式开关(-n、-c、-w 或 -N)的 in 或 out 选项,则该命令会提示输入每个数据字段的前缀长度,如下所示:

Enter prefix length of field <field_name> [<default>]:

如果指定 0,则 bcp 提示输入字段的长度(对于字符数据类型)或字段终止符(对于本机非字符类型)。

注意

在交互指定 bcp 命令中的所有字段后,该命令会提示您将自己对每个字段的响应保存在一个非 XML 格式化文件中。

前缀长度概述


若要存储字段的前缀长度,您需要有足够的字节来表示字段的最大长度。 另外,所需的字节数还取决于文件存储类型、列是否可以为 Null 以及数据是以本机格式还是字符格式存储在数据文件中。 例如,text 或 image 数据类型需要四个前缀字符存储字段长度,而 varchar 数据类型需要两个字符。 在数据文件中,这些长度前缀字符以 SQL Server 的内部二进制数据格式存储。

重要提示

使用本机格式时,请使用长度前缀而不要使用字段终止符。 本机格式数据可能会与终止符相冲突,因为本机格式数据文件是以 SQL Server 的内部二进制数据格式存储的。

大容量导出时的前缀长度


注意

导出字段时前缀长度提示中提供的默认值指明的是该字段的最有效前缀长度。

以空字段表示 Null 值。 若要指示字段为空(表示 NULL),字段前缀应包含值 -1,也就是说,字段前缀至少需要 1 个字节。 请注意,如果某个 SQL Server 表列允许 Null 值,则根据文件存储类型的不同,该列需要的前缀长度为 1 或更大。

在大容量导出数据并以本机数据类型或字符格式存储数据时,请使用下表中显示的前缀长度。

SQL Server

数据类型

本机格式

非 Null

本机格式

NULL

字符格式

NOT NULL

字符格式

NULL

char

2

2

2

2

varchar

2

2

2

2

nchar

2

2

2

2

nvarchar

2

2

2

2

text

4

4

4

4

ntext

4

4

4

4

binary

2

2

2

2

varbinary

2

2

2

2

image

4

4

4

4

datetime

0

1

0

1

smalldatetime

0

1

0

1

decimal

1

1

1

1

numeric

1

1

1

1

float

0

1

0

1

real

0

1

0

1

int

0

1

0

1

bigint

0

1

0

1

smallint

0

1

0

1

tinyint

0

1

0

1

money

0

1

0

1

smallmoney

0

1

0

1

bit

0

1

0

1

uniqueidentifier

1

1

0

1

timestamp

1

1

1

1

varchar(max)

8

8

8

8

varbinary(max)

8

8

8

8

UDT(用户定义的数据类型)

8

8

8

8

XML

8

8

8

8

在 SQL Server 的将来版本中将删除 ntext、text 和 image 数据类型。 请避免在新开发工作中使用这些数据类型,并考虑修改当前使用这些数据类型的应用程序。 请改用 nvarchar(max)、varchar(max) 和 varbinary(max)。

大容量导入时的前缀长度


大容量导入数据时,前缀长度为最初创建数据文件时指定的值。 如果数据文件不是通过 bcp 命令创建的,则可能不存在长度前缀字符。 在这种情况下,将前缀长度指定为 0。

注意

若要在不是使用 bcp 创建的数据文件中指定前缀长度,请使用本主题前面的大容量导出时的前缀长度中提供的长度。


参考:

https://technet.microsoft.com/zh-CN/library/ms190779

本文转自UltraSQL51CTO博客,原文链接: http://blog.51cto.com/ultrasql/1628109,如需转载请自行联系原作者

使用 bcp 指定数据文件中的前缀长度相关推荐

  1. 写文件 —— 将内容按照指定格式写入配置文件(fwrite()函数-》》向指定的文件中写入若干数据块)

    例如 -- 文件中的配置内容格式如下: dat.txt的文件的内容为 [root@localhost tool]# cat dat.txt  aa1213bbcc1415dd 参数说明 size_t ...

  2. lmbs PHP,PHP 清空 MySql 指定数据表中的所有数据

    PHP 清空 MySql 指定数据表中的所有数据 PHP 清空 MySql 指定数据表中的所有数据,在烈火小编在网上闲逛时,这是某技术博客的一篇文章,说是文章,并没有文字,只有代码,经过测试可以使用, ...

  3. pandas使用replace函数将dataframe指定数据列中的特定字符串进行自定义替换(replace substring in dataframe column values)

    pandas使用replace函数将dataframe指定数据列中的特定字符串进行自定义替换(replace substring in dataframe column values) 目录

  4. C语言文件操作(二)对指定txt文件中的N个数排序

    #include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #def ...

  5. 使用java将字符串写入到指定的文件中

    指定的字符串: 白天走在街道上,伸手不见五指,周围的建筑全被雾笼罩了,在家里通过窗户往外望去,外面就像仙境一般,雾把所有的东西都淹没了,能看到的,只有白色的雾.! 文件名是text.txt,下面就是j ...

  6. 从zip中读取文件 合并到指定的文件中

    从zip中读取文件 合并到指定的文件中 引入 commons-io 版本可以选择更高的版本 <dependency><groupId>commons-io</groupI ...

  7. php 根据一个数据组的id 取得另一个数据组对应的名称,怎样从两个spss的数据文件中选出id相同的数据,合并成一个文件...

    求教高手怎样从两个spss的数据文件中选出id相同的数据,合并成一个文件.谢谢.排序后用merge file操作,怎么原数据没有变化?output中提示这些 Renaming has created ...

  8. Java实验9 T3.对二进制数据文件中的所有数据求和

    题目要求 (对二进制数据文件中的所有数据求和)假设已经使用DataOutputStream中的writeInt(int)创建一个名为Exercise 19_3.dat的二进制数据文件,文件包含数目不确 ...

  9. 利用slf4j+log4j将日志写入指定的文件中

    主要实现的是可以从后台传入文件名,写入日志到指定的文件中.(jar包在链接中http://download.csdn.net/download/u010924720/10150019) 代码如下: p ...

最新文章

  1. 织梦lamp环境搭建
  2. Spark SQL and DataFrame for Spark 1.3
  3. python基础(part11)-作用域LEGB
  4. [Java基础]字符串中的编码解码问题
  5. 多学习,C++值得看的书籍
  6. 将GridView数据导出到Excel实现
  7. JDBC连接池技术与Druid
  8. 模具设计进程中应注意哪些问题
  9. El Capitan/Serial on the Intel Skylake NUC
  10. 【CV-Paper 08】ResNet:Deep Residual Learning for Image Recognition
  11. 电脑仙人掌机器人作文_用蜗牛.仙人掌.电脑.雪人.机器人.蚕宝宝.大象任意选两个编写一则300童话...
  12. JOIN 7图:念念不忘必有回响
  13. 【BAT】修改指定的文件名称为系统当前日期
  14. java制作安卓游戏脚本_autoA开源(用java写安卓无障碍脚本)
  15. kali初使用之zsh
  16. 在你朋友面前伪装黑客2(程序代码)
  17. 超音速启动 2020 年版发布
  18. 小飞鱼软件 大型生产企业设备档案管理系统介绍(图文)
  19. 论文阅读笔记之——《Multi-level Wavelet-CNN for Image Restoration》及基于pytorch的复现
  20. 【ELM时序预测】基于多尺度集成极限学习机实现寿命预测附matlab代码

热门文章

  1. AI一分钟 | 雷军家小米音箱开始控制电视啦,有望成为智能家居中心;国民公公王健林也玩AI,线上线下一起整
  2. 还在用分页?你out了 !试试 MyBatis 流式查询,真心强大!
  3. Spring官宣新家族成员:Spring Authorization Server!
  4. Windows 给力!可以扔掉 Linux 虚拟机了!
  5. 高并发:RocketMQ 削峰实战
  6. 终于有人把 Docker 讲清楚了,万字详解!
  7. 图解 MySQL 索引:B-树、B+树
  8. Openresty最佳案例 | 第5篇:http和C_json模块
  9. 数据、算法岗的几点经验分享!
  10. 报告:AI岗年薪下降8.9%,收入不及2018年