Я не могу напрямую протестировать этот код, но что-то вроде этого должно работать (вы также можете переписать как курсор, добавить проверку ошибок и т. Д.):
create table #guest (
ID int,
FilePath varchar(50),
FileImage image,
Updated tinyint
)
insert into #guest (ID, FilePath, FileImage, Updated)
select ID, Image, IMG, 0
from guest
declare @sql varchar(1500), @FilePath varchar(50), @ID int
while exists (select top 1 ID from #guest where Updated = 0)
begin
select top 1 @ID = ID, @FilePath = FilePath from #guest where Updated = 0
select @sql = 'update #guest set FileImage = ' + '(select bulkcolumn from openrowset(bulk n''' + @FilePath + ', SINGLE_BLOB) AS X) where ID = ' + @ID
exec sp_executesql @sql
update #guest set Updated = 1 where ID = @ID
end
update g
set g.IMG = #guest.FileImage
from guest g
inner join #guest on g.ID = #guest.ID