将 varchar(max) 转换为 varbinary(max)

Convert varchar(max) to varbinary(max)

我需要使用 convert binary 函数更新列,但它抛出错误。

这是我的查询:

update DocumentOnline
set FileData = CONVERT(VARBINARY(max), FileData, 0x255044462D312E340A25E2E3CFD30A322030206F626A0A3C3C2F4C656E6774682034392F46696C7465722F466C6174654465636F64653E3E73747265616D0A789C2BE4720AE1323653B03030530849E1720DE10AE42A54305430004208999CABA01F9166A8E092AF10C80500EAA209F20A656E6473747265616D0A656E646F626A0A342030206F626A0A3C3C2F5265736F75726365733C3C2F584F626A6563743C3C2F586631203120) 
where ClientId = '54528' and EndDate = '201607'

这是错误:

Argument data type varbinary(max) is invalid for argument 3 of convert function.

我是 SQL 的初学者 - 我错过了什么?

您对 CONVERT 使用了错误的语法

https://msdn.microsoft.com/en-in/library/ms187928.aspx

-- Syntax for CONVERT:  
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )  

尝试使用这个

update DocumentOnline
set FileData = CONVERT(VARBINARY(max),  0x255044462D312E340A25E2E3CFD30A322030206F626A0A3C3C2F4C656E6774682034392F46696C7465722F466C6174654465636F64653E3E73747265616D0A789C2BE4720AE1323653B03030530849E1720DE10AE42A54305430004208999CABA01F9166A8E092AF10C80500EAA209F20A656E6473747265616D0A656E646F626A0A342030206F626A0A3C3C2F5265736F75726365733C3C2F584F626A6563743C3C2F586631203120) 
where ClientId = '54528' and EndDate = '201607'

如果 FileData 的数据类型是 VARBINARY(MAX) 就使用这个:

update DocumentOnline
set FileData = 0x255044462D312E340A25E2E3CFD30A322030206F626A0A3C3C2F4C656E6774682034392F46696C7465722F466C6174654465636F64653E3E73747265616D0A789C2BE4720AE1323653B03030530849E1720DE10AE42A54305430004208999CABA01F9166A8E092AF10C80500EAA209F20A656E6473747265616D0A656E646F626A0A342030206F626A0A3C3C2F5265736F75726365733C3C2F584F626A6563743C3C2F586631203120
where ClientId = '54528' and EndDate = '201607'