Bcp是将数据导入数据库的最快方式
Microsoft SQL Server的批量复制(bcp)命令使您能够直接从命令行插入大量记录。 除了作为命令行爱好者的有用工具之外,bcp实用程序还是那些试图从批处理文件或其他编程方法中将数据插入SQL Server数据库的用户的强大工具。 有很多方法可以将数据导入到数据库中,但使用正确的参数设置bcp时速度最快。
bcp语法
使用bcp的基本语法是:
BCP参数取值如下:
- Table_name是表格的完全限定名称。 例如,您可以使用inventory.dbo.fruits将记录插入库存数据库中数据库所有者拥有的水果表中。
- 方向指示您要导入(“入”方向)还是导出(“出”方向)数据。
- File_name是文件的完整路径。 例如,您可以导入文件C:\ fruit \ inventory.txt。
- 选项允许您为批量操作指定参数。 例如,您可以指定-m选项允许的最大错误数。 您也可以使用-x选项来指定XML文件格式。 查阅Microsoft的bcp文档以获取完整列表。
bcp导入示例
为了把它放在一起,想象你的库存数据库中有一个水果表,并且你想要将存储在你硬盘上的文本文件中的所有记录导入到这个数据库中。 您将使用以下bcp命令语法:
bcp inventory.dbo.fruits在“C:\ fruit \ inventory.txt”-c -T这会产生以下输出:
C:\> bcp inventory.dbo.fruits在“C:\ fruit \ inventory.txt”-c -T开始复制...复制了36行。 网络包大小(字节):4096时钟时间(毫秒)总数:16平均值:(每秒2250.00行)C:\>您可能已经注意到该命令行上有两个新选项。 -c选项指定导入文件的文件格式为制表符分隔的文本,每行记录在新行中。 -T选项指定bcp应使用Windows身份验证连接到数据库。
bcp导出示例
通过将操作方向从“in”更改为“out”,可以使用bcp从数据库导出数据。例如,可以使用以下命令将水果表的内容转储到文本文件:
bcp inventory.dbo.fruits out“C:\ fruit \ inventory.txt”-c -T以下是命令行中的外观:
C:\> bcp inventory.dbo.fruits out“C:\ fruit \ inventory.txt”-c -T开始复制...复制了42行。 网络包大小(字节):4096时钟时间(毫秒)总数:1平均值:(每秒42000.00行)C:\>这就是所有的bcp命令。 您可以在批处理文件或其他具有DOS命令行访问权限的程序中使用此命令,以自动导入和导出SQL Server数据库中的数据。