我的table中有一个image字段存储照片,现在我想通过sql直接把每个字段输出到一个文件,如何来完成呢.

解决方案 »

  1.   


    --用下面的方法导出就可以保证导出标准的图片文件declare @id int,@fn nvarchar(260),@tmpfn nvarchar(260)
    select @id=2 --要导出的employeeid
    ,@fn='c:\test.bmp' --导出生成的文件名
    ,@tmpfn='c:\tmp.bak' --导出过程中使用的临时文件名--生成临时表,控制取消图片数据中的前缀
    create table ##tb(img image)
    insert into ##tb
    select photo from northwind..Employees where employeeid=@id--删除前缀处理
    declare @p varbinary(16)
    select @p=textptr(img) from ##tb
    updatetext ##tb.img @p 0 78 null--导出数据
    declare @sql varchar(8000)
    set @sql='bcp "select * from(select null as 类型 union all select 0 as 前缀 union all select 0 as 长度 union all select null as 结束 union all select null as 格式) a" queryout "'
    +@tmpfn+'" /c /S"zj" /P""'
    exec master..xp_cmdshell @sql,no_outputset @sql='bcp ##tb out "'+@fn+'" /S"zj" /P"" /i"'+@tmpfn+'"'
    exec master..xp_cmdshell @sql,no_outputset @sql='del '+@tmpfn
    exec master..xp_cmdshell @sql,no_output
    go
    drop table ##tb
      

  2.   

    图像文件导出?
    cast(字段 as varchar)