我使用的是SQL Server,我尝试将字符串设置为varbinary
而不转换其值。
示例:
declare @string varchar(max)
set @string='0x7777'
update tablename
set Data=@string
我知道这是不可能的,因为它不被允许。但是,我不想将字符串转换为varbinary
(使用select CONVERT(varbinary(max),@string
)),因为它会导致保存:
0x307837373737
此外,我知道制作@string varbinary
并删除'我会解决这个问题,但这不是我正在寻找的问题,因为我正在处理字符串以便将其保存在varbinary
内。
我希望输出为0x7777
varbinary
谢谢。
答案 0 :(得分:0)
你可以使用CONVERT,只需传递第3个参数。
update tablename
set Data=convert(varbinary(max), @string, 1)
如果data_type是二进制类型,则表达式必须是字符 表达。表达式必须由偶数个组成 十六进制数字(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,a, b,c,d,e,f)。如果样式设置为1,则字符0x必须为 表达式中的前两个字符。如果表达式包含 奇数个字符或任何字符无效的 提出错误。
请参阅reference了解二进制样式转换。