Sql server 如何将特设SQLServer查询blob数据导出到二进制文件

Sql server 如何将特设SQLServer查询blob数据导出到二进制文件,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我只是希望能够将jpg数据从单个记录导出到一个文件,而不必每次都编写程序 查询: select Media from tbl_GEO_ElementImage where ElementImageID = 64902 使用命令行BCP实用程序: c:\temp\>bcp "select Media from tbl_GEO_ElementImage where ElementImageID = 64902" queryout "001.jpg" -T 提示时,给出以下答案: E

我只是希望能够将jpg数据从单个记录导出到一个文件,而不必每次都编写程序

查询:

select Media from tbl_GEO_ElementImage where ElementImageID = 64902

使用命令行BCP实用程序:

c:\temp\>bcp "select Media from tbl_GEO_ElementImage where ElementImageID = 64902" queryout "001.jpg" -T
提示时,给出以下答案:

    Enter the file storage type of field Media [image]: <Enter>
    Enter prefix-length of field Media [4]: 0
    Enter length of field Media [0]: <Enter>
    Enter field terminator [none]: <Enter>

Do you want to save this format information in a file? [Y/n] n
输入字段媒体[image]的文件存储类型:
输入字段媒体[4]的前缀长度:0
输入字段媒体[0]的长度:
输入字段终止符[无]:
是否要将此格式信息保存到文件中?[是/否]n

我最后编写了一个命令行实用程序,允许在无人参与的情况下导出多个图像记录

Usage:
RunSQLOLEDB "[connection string]" "[query]"

e.g.
To extact all images from table Image into separate files 1.jpg, 2.jpg, etc.
SQLImageOut "Provider=SQLOLEDB;Data Source=(local);..." "SELECT CONVERT(varchar(50), ImageID)+'.jpg', ImageData from Image"
or        
SQLImageOut @ConnectionString.txt @Query.sql


我必须对多条记录执行此操作,因此我最终编写了一个脚本来生成一系列这些语句,添加了额外的“-n”标志以避免提示输入值。不幸的是,它确实添加了4字节前缀,因为这是默认值,但另一个快速脚本随后删除了前4个字节。谢谢你的帖子,这真的帮了我大忙!