2014-06-18 102 views
1

我有一個帶有二進制類型(24)的填充列的表。我想增加這個字段的長度爲二進制(32)。這部分很簡單。我遇到的問題是當我嘗試根據該字段的先前值查詢表時。 (我們正在使用hashbytes函數)。遞增二進制字段長度

所以前場長度的增加,我可以只使用:

SELECT * FROM Table WHERE Field = HASHBYTES('md5', 'value') 

後場長度的增加,該查詢返回任何內容。我將如何更改查詢以返回適當的值?我可以在二進制文件的末尾添加什麼以便識別它?

謝謝!

編輯:我顯然做了一些錯誤,因爲這工作正常。

CREATE TABLE #test (test binary(24) null) 
insert into #test (test) values (hashbytes('md5', 'test')) 
select * from #test 
ALTER TABLE #test ALTER COLUMN test binary(32) null 
select * from #test where test = hashbytes('md5', 'test') 

drop table #test 

回答

1

你可以在WHERE中使用CONVERT將它變回二進制(24)嗎?

CONVERT binary

+0

這確實在我的測試工作(如上編輯),所以我一定是做了別人錯了。 :/ 謝謝。 – Jeremy