¿Cómo puedo especificar la ruta a un archivo dinámicamente en OPENROWSET (BULK…)?

Quiero insertar imágenes en un campo de Imagen, preferiblemente utilizando un procedimiento almacenado que acepte una ruta a una imagen. Después de hackear, se me ocurrió esto;

-- functional
DECLARE @parameters nvarchar(max) = '';
DECLARE @sql_string nvarchar(max) = 
N'UPDATE MyTable
  SET MyImageField = (SELECT BulkColumn 
                      FROM Openrowset(Bulk ''' + @PathToMyImage + ''', Single_Blob) ImageData)
  WHERE MyPrimaryKey = ' + CAST(@PrimaryKey AS NVARCHAR(max));

EXECUTE sp_executesql @sql_string,  @parameters

Hice esto porque cuando lo intenté;

--Not functional
INSERT INTO MyTable (MyImageField) 
VALUES ((SELECT BulkColumn 
         FROM Openrowset(Bulk @PathToMyImage, Single_Blob) ImageData));

SQL Server lanza un error, quejándose de que Bulk espera una cadena. Preferiría no tener que recurrir a sp_executesql para mantenimiento / legibilidad, ¿hay una mejor manera de hacerlo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta