我有一个表cSc_Role
,其中包含RoleSettings
列。
RoleSettings
是数据类型图像。
内容是这样的:0x504B030414000000080000000000E637CA2A4
现在我需要将此列更新为一行。 像这样:
UPDATE cSc_Role
SET RoleSettings = '0x343240000000000E637CA2A430500'
WHERE Naming = 'User X'
但是对于二进制数据,似乎不可能用字符串来做这件事。
另一个选择是,我可以在临时的.bak文件中提供图像。
然后做一个INSERT INTO
。
但是通过这个解决方案,我已经读过它只能插入一个完整的行,而不仅仅是一列。或者我可以只插入带有插入的列吗?
如何在表格中更新或插入一个图像列? 提前谢谢。
答案 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)