我想知道是否有人可以帮我解决这个小问题。我有以下插入声明:
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部署的帮助下完成它?
答案 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.