是否可以更新SQL Server中的二进制字段?

时间:2009-05-11 19:45:00

标签: sql-server vb.net

我知道如何在具有二进制列的表中插入新行。但是一旦添加了该行,有没有办法更新二进制列?到目前为止,一个详尽的谷歌搜索没有任何结果。

到目前为止我的解决方案是

  1. 获取我想要更新的当前行
  2. 删除我要更新的行
  3. 使用我要更新的行中的信息以及新的二进制文件
  4. 创建一个新行

    它看起来并不优雅,我希望我能用更新声明做同样的事情。

    以下是我现在用于参考的更新代码

    Dim objCommand As New SqlCommand("UPDATE " & Tablename & " SET " _ 
    & column & " = Data  WHERE " & criteria)
    objCommand.Parameters.Add("@Data", SqlDbType.Image)
    objCommand.Parameters("@Data").Value = BinaryData
    

2 个答案:

答案 0 :(得分:1)

在TechRepublic看看this article的技术。您需要使用GetBytes / PutBytes方法,这比大多数ADO.Net代码要痛苦得多。另请参阅MSDN

答案 1 :(得分:0)

INSERT BINARY / BYTES

INSERT INTO table_name
(field_name)
VALUES
(4|8|16|32)

更新二进制/字节

UPDATE table_name 
SET field_name=field_name|8|16|32 
WHERE field_name_filter=@this_value

注意:设置字节标志后,您无法更新它以将其删除。因此,您不能使用UPDATE示例删除已设置为4的字节,然后将其更改为8,只需添加8,所以现在您将拥有4 | 8。同样放置反向字节也比它接缝更难,它不仅仅是UPDATE -4 | 8。

查询结果更容易,删除记录并将其作为带有旧数据的新记录(来自第一个查询)插入,并使用正确的字节标记重新格式化。

至少这是我对此的有限经验