【100分】无法理解的sql server的一个bug,高手快来救命!!!!!!!!

丰云 2018-12-07 09:22:40
不废话,直接上图:


代码:

DECLARE @Password NVARCHAR(100);
DECLARE @epwd NVARCHAR(500);
SET @Password = 'aaaaaa';
SET @epwd = CONVERT(VARCHAR(500),HashBytes('MD5',@Password),2);
SELECT @Password;
SELECT @epwd;
SELECT CONVERT(VARCHAR(500),HashBytes('MD5','aaaaaa'),2);
SELECT CONVERT(VARCHAR(500),HashBytes('MD5',@Password),2);


这到底这么回事,求高手指教
...全文
153 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
丰云 2018-12-07
  • 打赏
  • 举报
回复
搞清楚了,谢谢大家了
丰云 2018-12-07
  • 打赏
  • 举报
回复
上面我搞错了。。。。
丰云 2018-12-07
  • 打赏
  • 举报
回复
引用 1 楼 砸死牛顿的苹果 的回复:
同样的'aaaaaa' varchar 和 nvarchar 类型 结果是不一样的的
引用 2 楼 吉普赛的歌 的回复:
DECLARE @Password NVARCHAR(100);
SET @Password = 'aaaaaa';
SELECT 
	HashBytes('MD5', 'aaaaaa') AS [varcharMD5]
	,HashBytes('MD5', N'aaaaaa') AS [nvarcharMD5]
	,HashBytes('MD5', @Password) AS [nvarcharParaMD5]
varchar 和 nvarchar 占用的字节数都不一样, 无法比较MD5 的了。
引用 3 楼 卖水果的net 的回复:
本质上,是 varchar 和 nvarchar 的问题。
事情没那么简单,请看:
卖水果的net 2018-12-07
  • 打赏
  • 举报
回复
本质上,是 varchar 和 nvarchar 的问题。
吉普赛的歌 2018-12-07
  • 打赏
  • 举报
回复
DECLARE @Password NVARCHAR(100);
SET @Password = 'aaaaaa';
SELECT 
	HashBytes('MD5', 'aaaaaa') AS [varcharMD5]
	,HashBytes('MD5', N'aaaaaa') AS [nvarcharMD5]
	,HashBytes('MD5', @Password) AS [nvarcharParaMD5]
varchar 和 nvarchar 占用的字节数都不一样, 无法比较MD5 的了。
  • 打赏
  • 举报
回复
同样的'aaaaaa'
varchar 和 nvarchar 类型 结果是不一样的的

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧