从相对路径批量插入图像

时间:2010-03-30 06:10:37

标签: sql-server-2005 bulkinsert

我想知道是否有人可以帮我解决这个小问题。我有以下插入声明:

insert into symbol (sy_id, sy_fg_color, sy_bg_color, sy_icon)
select 302, 0, 16245177, sy_icon = (select * from openrowset(bulk 'K:\mypath\icons\myicon.png', single_blob) as image)

是否可以以任何方式使路径相对?我正在使用TFS来部署数据库,所以如果不能使它与T-SQL相关,也许可以在TFS / Visual Studio部署的帮助下完成它?

1 个答案:

答案 0 :(得分:0)

您可以使用varbinary(max)命令使用T-SQL插入OPENROWSET字段。

INSERT dbo.tblPhotos
(
    LargePhoto
)
SELECT tblPhotos.*
FROM OPENROWSET 
    (BULK 'c:\images\image*.jpg', SINGLE_BLOB) ThumbnailPhoto

请注意,在这种情况下,文件路径是相对于目标SQL服务器而不是您的客户端运行此命令。

基本上,有两种方法可以使用TSQL选择BLOB:

SELECT * FROM OPENROWSET (BULK 'C:\Test\Test1.pdf', SINGLE_BLOB) a

以及:

SELECT BulkColumn FROM OPENROWSET (BULK 'C:\Test\Test1.pdf', SINGLE_BLOB) a

然后,您可以通过执行INSERT SELECT ...或UPDATE SELECT ...

来使用它来INSERT

查看更多here.