这是我在 Stack Overflow 上找到的动态 sql 解决方案的后续问题。我想使用前面示例中使用的代码模型。问题是我收到以下错误: Msg 4104, Level 16, State 1, Line 1 无法绑定多部分标识符“ABC123.jpg”,我不明白为什么确实加载了图像名称。我已经黔驴技穷了。我觉得我非常接近使这个解决方案发挥作用,但无法超越这个问题。
请在下面找到示例代码:
declare AssetCursor cursor fast_forward for
select Image_File_Name
from Images
declare @sql nvarchar(4000)
declare @Image_File_Name varchar(50)
open AssetCursor
while (1=1) begin
fetch next from AssetCursor into @Image_File_Name
if @@FETCH_STATUS<>0 break
set @sql = N'UPDATE dbo.Images
SET Doc_Image =
(SELECT * FROM
OPENROWSET(BULK N''C:\MyImages\' + cast(@Image_File_Name as varchar(50)) + N'.JPG'', SINGLE_BLOB) AS img)
WHERE Image_File_Name = ' + cast(@Image_File_Name as varchar(50))
exec(@sql)
end /* while */
close AssetCursor
deallocate AssetCursor