求助:bcp命令使用格式文件的问题

jskenson 2008-07-01 05:17:33
数据库:test 数据表:tmp
字段:a int;b varchar(10)

在命令窗口执行:bcp skpt..tmp out D:\tmp.txt -T
如下:
请输入 a [int-null] 字段的文件存储类型: i
请输入字段 a [1] 的前缀长度: 0
请输入字段终止符 [none]: \t

请输入 b [char] 字段的文件存储类型: c
请输入字段 b [2] 的前缀长度: 0
请输入字段 b [10] 的长度: 10
请输入字段终止符 [none]: \r\n

是否要将此格式信息保存在一个文件中? [Y/n] y
宿主文件名 [bcp.fmt]: D:\bcp.fmt


文件D:\bcp.fmt内容:
9.0
2
1 SQLINT 0 4 "\t" 1 a ""
2 SQLCHAR 0 10 "\r\r\n" 2 b Chinese_PRC_CI_AS

再执行:bcp skpt..tmp out D:\tmp.txt -T -i"D:\bcp.fmt"
这时出错,提示列类型无效.
请教应该怎么做才可以让它还原回去?谢谢!
...全文
195 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jskenson 2008-07-03
  • 打赏
  • 举报
回复
顺便解释一下-i这个参数:
-i指定的响应文件包含对每一字段命令提示问题的响应,即在命令提示符下运行bcp命令的输入,回车符表示每一回答结束.
如我执行bcp skpt..tmp out D:\tmp.txt -T可写作:bcp skpt..tmp out D:\tmp.txt -T -i"响应文件"
"响应文件"内容如下:
i
0
\t
c
0
10
\r\t
y
D:\bcp.fmt

这样就不需要在执行过程中输入回答了.
jskenson 2008-07-03
  • 打赏
  • 举报
回复
原来我用错了参数,是-f而不是-i.忙活了这么久,谢谢楼上两位!
iamme81 2008-07-02
  • 打赏
  • 举报
回复
关键问题是看下你的输入格式是否正确?
也可以象二楼那样使用格式化文件
看看二楼提供的资料吧!
hery2002 2008-07-02
  • 打赏
  • 举报
回复
SQL Server数据导入导出工具BCP详解
http://database.51cto.com/art/200701/37924.htm

创建格式化文件
http://msdn.microsoft.com/zh-cn/library/ms191516.aspx

bcp AdventureWorks.HumanResources.Department format nul -c -x -f Department-c..xml –t, -T
jskenson 2008-07-01
  • 打赏
  • 举报
回复
不能修改?一个小错误:数据库是skpt

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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