SQL-Table中的UPDATE数据类型图像

时间:2015-04-23 07:49:34

标签: sql sql-server insert set

我有一个表cSc_Role,其中包含RoleSettings列。 RoleSettings是数据类型图像。 内容是这样的:0x504B030414000000080000000000E637CA2A4

现在我需要将此列更新为一行。 像这样:

UPDATE cSc_Role
SET RoleSettings = '0x343240000000000E637CA2A430500'
WHERE Naming = 'User X'

但是对于二进制数据,似乎不可能用字符串来做这件事。 另一个选择是,我可以在临时的.bak文件中提供图像。 然后做一个INSERT INTO。 但是通过这个解决方案,我已经读过它只能插入一个完整的行,而不仅仅是一列。或者我可以只插入带有插入的列吗?

如何在表格中更新或插入一个图像列? 提前谢谢。

4 个答案:

答案 0 :(得分:1)

尝试使用convert to varbinary:

UPDATE cSc_Role
SET RoleSettings = convert(VARBINARY(MAX),'0x343240000000000E637CA2A430500')
WHERE Naming = 'User X'

答案 1 :(得分:1)

如果上述所有解决方案都无效,请尝试通过删除以下内容中的''来更新,如下所示

UPDATE cSc_Role
SET RoleSettings = 0x343240000000000E637CA2A430500
WHERE Naming = 'User X'

此外,请避免在新的开发工作中使用这些数据类型( ntext,text和image ),并计划修改当前使用它们的应用程序。请改用 nvarchar(max),varchar(max)和varbinary(max)

答案 2 :(得分:0)

使用hex-literal,x'34 ....'

UPDATE cSc_Role
SET RoleSettings = x'343240000000000E637CA2A430500'
WHERE Naming = 'User X'

答案 3 :(得分:0)

我在项目上遇到同样的问题,你需要提供二进制数据作为十六进制值,而不是字符串。这个工具可以让你更新或插入你需要的东西

Binary-file-to-sql-hexstring

它为我节省了很多工时。