如何生成Sybase BCP Fmt文件?

时间:2013-10-22 19:33:02

标签: sybase sybase-ase

我有一个庞大的数据库,我想使用BCP转储出来,然后将其加载到其他地方。我已经对Sybase版本的BCP做了很多研究(对MSSQL更熟悉)我看到了如何使用导入文件,但我无法弄清楚如何创建一个。

我目前正在使用这样的Sybase bcp输出数据文件:

bcp mytester.dbo.XTABLE out XTABLE.bcp -U sa -P mypass -T -n 

尝试将它们导入回来:

bcp mytester.dbo.XTABLE in XTABLE.bcp  -E -n -S Sybase_157 -U sa -P SyAdmin 

现在,IN部分给出了一个关于IDENTITY_INSERT的错误,无论该表是否具有标识:

  

服务器消息:Sybase157 - 消息7756,级别16,状态1:无法使用   表'mytester.dbo.XTABLE'的'SET IDENTITY_INSERT'因为   table没有identity属性。

我经常使用此页面上的精彩信息寻求帮助,但这是我第一次提出问题,所以我谦卑地请求您提供的任何指导:)

1 个答案:

答案 0 :(得分:1)

在您的BCP中,-E标志告诉bcp从输入文件中获取标识列值。我会尝试在没有那个标志的情况下运行它Sybase中的fmt文件有点挑剔,如果可能的话我会尽量避免。因此,只要您的模式在您的系统之间相同,就可以使用以下命令:

bcp mytester.dbo.XTABLE in XTABLE.bcp -n -S Sybase_157 -U sa -P SyAdmin 

此外,bcp out上的-T标志似乎很奇怪。我知道SQLServer -T是一个安全设置,但是在Sybase中它表示文本或图像列的最大大小,后跟一个数字...... -T 32000(将是32K字节)

但要回答标题中的问题,如果您以交互方式运行 bcp (未指定-c-n-f),它将会执行通过每一列,提示信息。最后,它会询问您是否要创建格式文件,并允许您指定文件的名称。

供参考,以下是语法和可用标志: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc30191.1550/html/utility/X14951.htm

“实用程序指南”中的章节: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc30191.1550/html/utility/BABGCCIC.htm