2014-05-19 51 views
1

我正在使用SQL Server,我試圖將字符串設置爲varbinary而不轉換其值。如何將字符串值設置爲varbinary

例子:

declare @string varchar(max) 

set @string='0x7777' 

update tablename 
set [email protected] 

我知道,因爲它是不允許的,這是不可能的。但是我不想字符串(使用select CONVERT(varbinary(max),@string)),因爲它會導致儲蓄轉化爲varbinary

0x307837373737 

而且,我知道做@string varbinary和刪除「的會解決這個問題,但是這是不是我正在尋找的,因爲我正在處理字符串以便將其保存在varbinary之內。

我所要的輸出是:0x7777varbinary

內謝謝。

+0

所以想要解析一個十六進制字符串爲字節? – usr

回答

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二進制轉換風格。

+0

完美!謝謝! –

+0

@MiqeEqiM很高興爲你效勞。如果解決方案有幫助,請將回答標爲接受。 –

相關問題