2016-11-28 57 views
2

我试图用xp_cmdshell的这个BCP:SQL Server的BCP出口二进制到文件:额外的数据在文件的开头

'BCP "SELECT TOP 1 Data FROM <FQDN> WHERE Name = ''<name>'' " queryout "C:\exportdir\export_data.dat" -T -n -S .\SQLEXPRESS' 

但我在的开始时得到一些额外的数据文件缓冲区。我测试了两次,并开始与

两个文件BB 67 B9 00 00 00 00

我想摆脱这一点,我想都与-n-w更换-N参数但没有运气。

回答

1

为此,您需要使用格式文件运行导出,该文件指定data字段的前缀长度为。您可以从XML格式文件或非XML格式文件中指定此项。

E.g.生成一个非XML格式的文件:要创建一个非XML格式的文件,您可以使用参数format nul -f <format_file>(除了其他必需的参数)运行BCP。这将创建您指定它的格式文件。使用您最喜欢的文本编辑器并将前缀长度更改为0.默认情况下,这将由BCP生成为非零值,并且无法使用带有参数的BCP自动将其自动设置为0。

在最终的导出命令中,您将引用格式文件(具有0前缀长度)以导出文件的原始格式。有关更多详细信息,请参阅格式文件的文档:Create a Format File (SQL Server),Non-XML Format Files (SQL Server)等。