【发布时间】:2013-07-09 17:54:39
【问题描述】:
我有一个表,其列 [password] 存储为 nvarchar(max)。我想把它转换成varbinary(max)。
我创建了一个名为[temp] 的新列并将其声明为varbinary(max)。然后我用CONVERT更新了:
update tempuser set [temp]=CONVERT(varbinary(max), CONVERT(nvarchar(max),[password]))
现在 [temp] 列中的值不同。例如,[password] 的一个值以此开头:
0x3E6AFF88...
[temp] 中对应的条目以:
0x30783345...
同样当[password] 为NULL 时,[temp] 变为0x4E554C4C。
【问题讨论】:
-
为什么你认为它们应该是一样的?
-
同意@Goat。您正在转换一个恰好 看起来 像二进制值的字符串,因为它以 0x 开头。不幸的是,这些不是一回事。试试
CONVERT(VARBINARY(MAX), [password]), 1)。
标签: sql database sql-server-2008