使用BCP从SQL Server 2000导出图像列

时间:2011-09-29 12:28:46

标签: sql-server tsql sql-server-2000

我的任务是将一些数据从SQL Server 2000数据库中提取到磁盘上的平面格式。我的SQL Server经验很少。

有一个表包含存储在“IMAGE”类型列中的文件,以及存储文件名的nvarchar列。

表中存储了多种类型的文件:Word文档,XLS,TIF,txt,zip文件等。

我正在尝试使用BCP提取一行,执行以下操作:

bcp "select file from attachments where id = 1234" queryout "c:\myfile.doc" -S <host> -T -n

这会保存一个文件,但它已损坏,我无法用Word打开它。当我用文字打开文件时,我可以看到很多文字,但我也会得到很多不可渲染的字符。尝试提取图像文件时遇到类似问题,例如TIF。照片软件无法打开文件。

我认为我遇到了某种字符编码问题。

我在BCP中玩过-C(例如尝试RAW)和-n选项,但仍无法使其工作。

SQL Serer中的表具有“SQL_Latin1_General_CP1_CI_AS”的排序规则

我正在从Windows 7桌面远程运行BCP。

知道我哪里出错了吗?非常感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

我通过更改BCP在您调用命令时询问的默认选项来实现此目的:

BCP prompts

产生差异的是将prefix-length字段从4更改为0.

答案 1 :(得分:0)

bcp“从附件中选择文件,其中id = 1234”queryout“c:\ myfile.doc”-S -T -n

之后 [图片]:我(输入大写“我”]           0           0           输入 保存文件Y

kallas ..你的文件在那里