将文件添加到 SQL 表 - 从不保存

本文关键字:保存 SQL 文件 添加 | 更新日期: 2023-09-27 18:35:06

我正在尝试使用本地文件更新数据类型图像列

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)

返回已成功填充的批量列列

将文件添加到 SQL 表 - 从不保存

首先,我建议转储image数据类型并使用varbinary(max) - 自 SQL Server 2005 以来,image已被弃用。

其次,我会稍微重写一下你的UPDATE陈述如下:

UPDATE TblFiles
SET DOCBLOB = img.BulkColumn 
FROM OPENROWSET(BULK 'C:'TEMP'abc.doc', SINGLE_BLOB) AS img
WHERE ID = 62

就我而言,这工作得很好 - 二进制列使用OPENROWSET调用中指定的文件内容进行更新

原来我

试图更新的表上有一个触发器(执行的代码)。所以我的更新每次都被逆转了。

一旦我禁用了触发器,我的原始查询就可以工作了