更新 SQL-Table 中的数据类型图像

UPDATE datatype image in SQL-Table

我有一个 table cSc_RoleRoleSettingsRoleSettings 是数据类型图像。 内容是这样的:0x504B030414000000080000000000E637CA2A4

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

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

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

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

使用十六进制文字,x'34....'

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

尝试使用转换为 varbinary:

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

如果上述所有解决方案都不起作用,请尝试通过删除以下 '' 中的 '' 进行更新,

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

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

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

Binary-file-to-sql-hexstring

它为我节省了很多工时。