Как я могу указать путь к файлу динамически в OPENROWSET (BULK ...)?

Я хочу вставить изображения в поле изображения, предпочтительно используя хранимую процедуру, которая примет путь к изображению. После взлома я придумал это;

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

Я сделал это потому, что когда я пытался;

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

SQL Server выдает ошибку, жалуясь, что Bulk ожидает строку. Я'Я предпочел бы не прибегать к sp_executesql для удобства обслуживания / читабельности, есть ли лучший способ сделать это?

Ответы на вопрос(1)

Ваш ответ на вопрос