我有一个庞大的数据库,我想使用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属性。
我经常使用此页面上的精彩信息寻求帮助,但这是我第一次提出问题,所以我谦卑地请求您提供的任何指导:)
答案 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