千家信息网

BCP 数据的导入和导出

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,BCP 命令的参数很多,使用 -h 查看帮助信息,注意:参数是区分大小写的使用BCP命令导出和导入数据常用的参数如下bcp {[[database_name.][schema_name]].{tabl
千家信息网最后更新 2024年11月26日BCP 数据的导入和导出

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 '


数据 命令 配置 类型 数据库 参数 名称 字符 实例 文件 文档 服务器 用户 用户名 服务 高级 安全 信息 字段 密码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全单页 ccna 网络安全第四章答案 服务器几个ip 服务器2003系统桌面图标 互联网科技带给我们的好处和坏处 漳州拓星互联网科技有限公司 服务器主体无法在当前安全上 宽城区有口碑的网络技术哪家好 山东正元系统怎么分割数据库 qq飞车手游大数据库 日本视频软件开发 虹口区创新数据库服务商销售 交易数据库 外汇交易中心 尔雅数据库技术与应用答案 华为怎么关闭网络安全 服务器安装腾讯安全管家 网络技术 ip地址的聚合 数据库应用技术的思维导图 软件开发报价方案模板 网络安全宣传视频2020 中兴波分软件开发一部 服务器查看安全策略 信息安全竞赛网络安全竞赛 山东正元系统怎么分割数据库 长沙雨花区软件开发师培训 南桥坏了可以进入网络安全模式吗 软件开发渐进式模型的缺点 中国十一所网络安全高校 gpu云服务器一年价格 中美网络安全对话
0