关于Bcp

SunnieZhong 2004-09-24 05:03:23
1.用Bcp导出表的某些字段到txt文件中;
2.用Bcp从txt文件中导入数据到表中的对应列(表的列数大于txt文件中的列数)
3.如何写格式文件


请各位帮忙,谢谢!
...全文
166 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2004-09-24
  • 打赏
  • 举报
回复
--3.如何写格式文件

看联机帮助比较清晰一点,上面有图示,位置:
联机帮助--索引中输入"bcp 实用工具, 格式文件"--选择"使用格式文件"
zjcxc 2004-09-24
  • 打赏
  • 举报
回复
--上面的格式文件稍微特殊了一点,是顺序导入到1,2列了,如果导入数据到1,3列,则改格式文件如下:
8.0
2
1 SQLCHAR 0 10 "\t" 1 a ""
2 SQLCHAR 0 10 "\r\n" 3 c ""


--用我上面的测试,得到的结果将会是:
a b c
---------- ---------- ----------
aa NULL bb
cc NULL dd

(所影响的行数为 2 行)
zjcxc 2004-09-24
  • 打赏
  • 举报
回复
--上面的导入中,用到的a.txt内容

aa bb
cc dd



--bcp.txt文件内容
8.0
2
1 SQLCHAR 0 10 "\t" 1 a ""
2 SQLCHAR 0 10 "\r\n" 2 b ""
zjcxc 2004-09-24
  • 打赏
  • 举报
回复
--2.用Bcp从txt文件中导入数据到表中的对应列(表的列数大于txt文件中的列数)


--测试表
create table tb(a varchar(10),b varchar(10),c varchar(10))
go

--导入数据(为测试方便,用bulk,它与bcp使用相同的格式文件)
bulk insert tb from 'c:\a.txt' --从a.txt文件导入
with(formatfile='c:\bcp.txt') --使用格式文件bcp.txt

--如果是用bcp的话:bcp 库名.dbo.表名 in c:\a.txt /S"sql服务器名" /U"sa" /P"密码" /f"c:\bcp.txt"
go

--显示结果
select * from tb
go

--删除测试
drop table tb

/*--测试结果

a b c
---------- ---------- ----------
aa bb NULL
cc dd NULL

(所影响的行数为 2 行)
--*/
zjcxc 2004-09-24
  • 打赏
  • 举报
回复
--1.用Bcp导出表的某些字段到txt文件中;

bcp "select 要导出的列一列表" queryout "c:\test.txt" /S"sql服务器名" /U"sa" /P"密码" /c


yjdn 2004-09-24
  • 打赏
  • 举报
回复
导出某些字段用这个:
EXEC master..xp_cmdshell 'bcp "Select 你要导出的字段名 from 数据库名..表名" queryout c:\DT.txt -c -S服务器名 -Usa -P密码'
yjdn 2004-09-24
  • 打赏
  • 举报
回复
/** 导入文本文件
EXEC master..xp_cmdshell 'bcp 数据库名..表名 in c:\DT.txt -c -S服务器名 -Usa -P密码'

/** 导出文本文件
EXEC master..xp_cmdshell 'bcp 数据库名..表名 out c:\DT.txt -c -S服务器名 -Usa -P密码'

EXEC master..xp_cmdshell 'bcp "Select * from 数据库名..表名" queryout c:\DT.txt -c -S服务器名 -Usa -P密码'

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧