我想将图像插入到图像字段中,最好使用将接受图像路径的存储过程。在四处乱窜后,我想出了这个;
-- 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,有没有更好的方法来解决这个问题?