Another syntax worked better for me. I had added a Picture column to a table ([font="Courier New"]Model[/font]), and wanted to update existing rows in the table with images from files - in this case [font="Courier New"]Picture.jpg[/font]. The kicker was realising that you needed 2 aliases (PictureTable and blob).
WITH PictureTable AS (SELECT blob.* FROM OPENROWSET(BULK N'C:\Picture.jpg', SINGLE_BLOB) AS blob)
SET Model.Picture = PictureTable.BulkColumn
FROM Model, PictureTable
WHERE Model.Id = 2;