BCP 数据的导入和导出

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

BCP 命令的参数很多,使用 -h 查看帮助信息,注意:参数是区分大小写的

使用BCP命令导出和导入数据常用的参数如下

bcp {[[database_name.][schema_name]].{table_name | view_name} | "query"}

{in | out | queryout}  数据文件

[-c 字符类型]  | [-w 宽字符类型]
[-t 字段终止符]    [-r 行终止符]
[-i 输入文件]       [-o 输出文件]        
[-S 服务器名称]   [-U 用户名]           [-P 密码]
[-T 可信连接]      [-d 数据库名称]

[-k 保留NULL值]

-c 使用char类型做为存储类型,没有前缀且以"\t"做为字段分割符,以"\n"做为行分割符。

-w 使用Unicode字符集拷贝数据,在数据库中,需要将Table Column设置为 nchar或nvarchar存储类型。如果 -c 和 -w 同时指定,那么 -w 将覆盖 -c。

-t field_term 指定column分割符,默认是"\t"。

-r row_term 指定row分割符,默认是"\n"。

-S server_name[ \instance_name] 指定要连接的SQL Server服务器的实例,如果未指定此选项,BCP连接本机的SQL Server默认实例。如果要连接某台机器上的默认实例,只需要指定机器名即可。

-U login_id 指定连接SQL Sever的用户名。

-P password 指定连接SQL Server的用户名密码。

-T 指定BCP使用信任连接登录SQL Server。如果未指定-T,必须指定-U和-P。

-d 指定数据库名称

-k 指定空列使用null值插入,而不是这列的默认值。

 

一,使用bcp 将整个table中的数据导出到txt或csv文档中

bcp db_study.dbo.sales out D:\test.txt S . U sa P sa t  S . U sa P sa t  w

二,使用 query statement 将查询结果导出到txt 或 csv文档中

1,配置SQL Server,允许运行 xp_cmdshell 命令

-- 允许配置高级选项  EXEC master.sys.sp_configure 'show advanced options', 1  -- 重新配置  RECONFIGURE  -- 启用xp_cmdshell  EXEC master.sys.sp_configure 'xp_cmdshell', 1  --重新配置  RECONFIGURE

否则,SQL Server 会抛出错误信息

SQL Server 阻止了对组件“xp_cmdshell”的 过程“sys.xp_cmdshell”的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用“xp_cmdshell”。有关启用“xp_cmdshell”的详细信息,请搜索 SQL Server 联机丛书中的“xp_cmdshell”。

启用“xp_cmdshell” 被认为是不安全的,在使用完 “xp_cmdshell” 命令之后,使用以下script将其禁用。 

-- 允许配置高级选项  EXEC master.sys.sp_configure 'show advanced options', 1  -- 重新配置  RECONFIGURE  -- 禁用xp_cmdshell  EXEC master.sys.sp_configure 'xp_cmdshell', 0--重新配置  RECONFIGURE

2,使用  xp_cmdshell 命令运行BCP命令,将数据导出

EXEC master..xp_cmdshell 'bcp "SELECT [Store] ,[Item] ,[Color] ,[Quantity] FROM [db_study].[dbo].[Inventory]" queryout D:\test.txt -S . -U sa -P sa -t "\t" -w 'EXEC master..xp_cmdshell 'bcp "SELECT [Store] ,[Item] ,[Color] ,[Quantity] FROM [db_study].[dbo].[Inventory]" queryout D:\test.csv -S . -U sa -P sa -t "," -w '

3,使用  xp_cmdshell 命令,也可以将整个Table的数据导出

EXEC master..xp_cmdshell 'bcp [db_study].[dbo].[Inventory] out D:\test.txt -S . -U sa -P sa -t "\t" -w 'EXEC master..xp_cmdshell 'bcp [db_study].[dbo].[Inventory] out D:\test.csv -S . -U sa -P sa -t "," -w '


三,将数据导入到SQL Server

CREATE TABLE [dbo].[Inventory_LoadIn](    [Store] [nvarchar](2) NULL,    [Item] [varchar](20) NULL,    [Color] [varchar](10) NULL,    [Quantity] [int] NULL)

1,使用BCP,将txt文档中的数据导入到table [dbo].[Inventory_LoadIn] 中

bcp [db_study].[dbo].[Inventory_LoadIn] in D:\test.txt -S . -U sa -P sa -t "\t" -w 

bcp [db_study].[dbo].[Inventory_LoadIn] in D:\test.csv -S . -U sa -P sa -t "," -w

2,使用xp_cmdshell 命令执行bcp,将数据导入到数据库table中

EXEC master..xp_cmdshell 'bcp [db_study].[dbo].[Inventory_LoadIn] in D:\test.txt -S . -U sa -P sa -t "\t" -w 'EXEC master..xp_cmdshell 'bcp [db_study].[dbo].[Inventory_LoadIn] in D:\test.csv -S . -U sa -P sa -t "," -w '


本文转自lzwxx 51CTO博客,原文链接:http://blog.51cto.com/13064681/1942704

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
前端开发 JavaScript 测试技术
《小团队web技术搭建》(七)自动化部署方式(CI/CD)(二)
《小团队web技术搭建》(七)自动化部署方式(CI/CD)(二)
422 1
|
Oracle 关系型数据库 数据库
Windows 下安装 Oracle 12c 教程
原文 Windows 下安装 Oracle 12c 教程 申明:本文原作者:Jmq   本文给大家带来的是 Oracle 12C 的安装教程。   1、准备 1.1 下载 Oracle 12c 安装程序
1962 0
Windows 下安装 Oracle 12c 教程
|
9月前
|
存储 数据采集 分布式计算
阿里巴巴数据仓库实践:从离线到实时的一体化探索
阿里巴巴的数据仓库实践从离线到实时的一体化探索,不仅为企业自身业务的快速发展提供了有力支撑,也为行业树立了标杆。通过不断优化技术架构、提升数据处理能力、加强数据治理和安全管理,阿里巴巴的实时数仓将为企业创造更大的价值,推动数字化转型的深入发展。未来,随着技术的不断进步和业务的持续拓展,阿里巴巴的实时数仓实践将展现出更加广阔的应用前景和发展空间。
|
开发者 API
APPID详解
说明: ISV入驻到蚂蚁开放平台后,创建应用会生成一个APPID, 目前是以年份开头的16位数字 相关问题: 1.如何创建应用【请点击:[url]https://openclub.alipay.com/read.php?tid=1606&fid=72[/url]】  2.如何查看app_id   查询AppID可以按照下面步骤操作:   1、登录蚂蚁金服开放平台(open.alipay.com)   2、在“开发者中心”-“开发者中心 总览”里面查询查询自己的APPID。
3299 12
|
11月前
|
Cloud Native 关系型数据库 分布式数据库
【PolarDB开源】PolarDB开源项目未来展望:技术趋势与社区发展方向
【5月更文挑战第29天】PolarDB,阿里云的云原生分布式数据库,正聚焦于云原生、容器化、HTAP与实时分析、智能化运维等技术趋势,旨在提升资源利用率、扩展性及数据分析能力。未来,项目将深化全球开源社区合作,拓宽应用场景,构建开发者生态,以创新技术驱动数据库领域发展,目标成为领先的云数据库服务。
192 1
|
Web App开发 Prometheus Cloud Native
Prometheus 由于时间不同步导致数据不显示
现象描述 将 Prometheus 数据在 Grafana 中进行展示,Grafana 中 Graph 数据显示有延迟,其他类型 Singlestat 和 Table 都显示 N/A 。 排查 1. 排查数据库 发现 Prometheus 数据库端一切正常, 2.
8484 0
|
11月前
|
安全 关系型数据库 虚拟化
WIndows Server 远程桌面服务—RDS
WIndows Server 远程桌面服务—RDS
468 1
|
8月前
|
SQL 分布式计算 监控
在hue上部署spark作业
8月更文挑战第10天
|
边缘计算 运维 Kubernetes
云原生新边界——阿里云边缘计算云原生落地实践
日前,在由全球分布式云联盟主办的“Distributed Cloud | 2021 全球分布式云大会·云原生论坛”上,阿里云高级技术专家黄玉奇发表了题为《云原生新边界:阿里云边缘计算云原生落地实践》的主题演讲。
云原生新边界——阿里云边缘计算云原生落地实践

热门文章

最新文章