我正在尝试使用本地文件
更新数据类型图像列Update tblabc
set DOCBLOB =(Select * FROM OPENROWSET(BULK 'C:\TEMP\abc.doc', SINGLE_BLOB) AS img)
where ID= 62
GO
查询似乎正确执行(无错误),但列仍为NULL。我在MSMS中运行查询,然后立即检查表。我最初尝试使用C#更新blob列,但得到相同的结果 - 我没有错误,但从未看到更新。
我已成功更新文本列,因此假设权限正常。
(Select * FROM OPENROWSET(BULK 'C:\TEMP\abc.doc', SINGLE_BLOB) AS img)
返回成功填充的Bulkcolumn列
答案 0 :(得分:1)
首先,我建议转储 image
数据类型并使用varbinary(max)
代替 - image
自SQL Server 2005以来已被弃用。 ..
其次,我稍微重写了你的UPDATE
语句:
UPDATE TblFiles
SET DOCBLOB = img.BulkColumn
FROM OPENROWSET(BULK 'C:\TEMP\abc.doc', SINGLE_BLOB) AS img
WHERE ID = 62
就我而言,这很好用 - 二进制列会使用OPENROWSET
调用中指定的文件内容进行更新
答案 1 :(得分:0)
原来在我试图更新的表上有一个Trigger(执行代码)。 所以我的更新每次都被颠倒了。
一旦我禁用了触发器,我的原始查询就会起作用