我尝试将 xp_cmdshell 与此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
和-n
替换-w
参数,但没有运气。
答案 0 :(得分:2)
要执行此操作,您需要使用格式文件运行导出,该格式文件为data
字段指定 0 的前缀长度。您可以从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)等。