将文件添加到SQL表 - 永远不会保存

时间:2014-12-23 04:04:31

标签: c# sql sql-server

我正在尝试使用本地文件

更新数据类型图像列
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列

2 个答案:

答案 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(执行代码)。 所以我的更新每次都被颠倒了。

一旦我禁用了触发器,我的原始查询就会起作用