【问题标题】:bulk insert image from relative path从相对路径批量插入图像
【发布时间】:2011-02-02 08:15:09
【问题描述】:

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

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 deploy 的一些帮助来完成?

【问题讨论】:

  • 你有解决这个问题的方法吗?
  • 不,我还没有找到解决办法。
  • stackoverflow.com/questions/139245/relative-path-in-t-sql 正是您所需要的。这个没有直截了当的答案:(
  • 您可以在 BulkInsert 中使用 UNC 并先将其设置为变量。
  • “批量插入”是什么意思?一个大数据项(如果是,请参阅下面的答案),还是 INSERT 多次?

标签: sql-server-2005 bulkinsert


【解决方案1】:

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

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.

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 2013-07-25
    • 2020-08-09
    • 1970-01-01
    • 2012-01-10
    相关资源
    最近更新 更多