Массовая вставка изображения из относительного пути - PullRequest
4 голосов
/ 30 марта 2010

Интересно, могут ли некоторые помочь мне с этой маленькой проблемой? У меня есть следующий оператор вставки:

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?

1 Ответ

0 голосов
/ 09 марта 2017

Вы можете вставить в поле varbinary(max), используя T-SQL, используя команду OPENROWSET.

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

Обратите внимание, что путь к файлу в этом случае относится к целевому серверу SQL, и не ваш клиент , выполняющий эту команду.

По сути, есть два способа ВЫБРАТЬ BLOB с помощью TSQL:

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 ...

Подробнее здесь.

...