导出northwind中Employees的图像.sql

--用下面的方法导出就可以保证导出标准的图片文件

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_output

set @sql='bcp ##tb out "'+@fn+'" /S"zj" /P"" /i"'+@tmpfn+'"'
exec master..xp_cmdshell @sql,no_output

set @sql='del '+@tmpfn
exec master..xp_cmdshell @sql,no_output
go
drop table ##tb

你可能感兴趣的:(sql)