加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql – 怎样行使特定值更新varbinary字段?

发布时间:2021-03-14 16:35:38 所属栏目:编程 来源:网络整理
导读:根基上我试图给用户一个特定的暗码,以是我可以在体系上测试一些成果,由于我只有我们的打点员帐户,我不能玩,我只是选择一个随机帐户,以是我可以做我的测试.以是这是我实行更新: UPDATE dbo.LoginSET Salt=CAST('bPftidzyAQik' AS VARBINARY),Password=CAST('0

根基上我试图给用户一个特定的暗码,以是我可以在体系上测试一些成果,由于我只有我们的打点员帐户,我不能玩,我只是选择一个随机帐户,以是我可以做我的测试.以是这是我实行更新:

UPDATE dbo.Login
SET
  Salt=CAST('bPftidzyAQik' AS VARBINARY),Password=CAST('0x2B89C2954E18E15759545A421D243E251784FA009E46F7A163926247FDB945F85F095DBB1FFF5B2B43A6ADAE27B8C46E176902412C4F8943E39528FF94E0DD5B' AS VARBINARY)
WHERE LoginID=10947

它运行正常,但数据库中的代码看起来是一个日语,另一个的语法看起来很好,但它不是我放入的值,我但愿它行使我输入简直切值,以是我可以登录.怎样我这样做吗?我实行了几种差异的转换和转换办理方案,没有命运.

办理要领

实行这个:
UPDATE dbo.Login
SET
  Salt=CAST('bPftidzyAQik' AS VARBINARY),Password=0x2B89C2954E18E15759545A421D243E251784FA009E46F7A163926247FDB945F85F095DBB1FFF5B2B43A6ADAE27B8C46E176902412C4F8943E39528FF94E0DD5B
WHERE LoginID=10947

(你不必要将存储十六进制值的字符串转换为varbinary – 这就是默认环境下的内容,没有引号)

题目是,怎样天生该暗码十六进制值,而且您是否行使沟通的编码来天生它,由于您要阅读它?假如您打算将该数据转换回字符串,则必要一些代码才气执行此操纵.这是我写的一个函数:

CREATE FUNCTION ConvertBinary
(  
    @value AS varbinary(max)
) RETURNS VARCHAR(MAX) AS BEGIN  

    DECLARE @result AS varbinary(max),@result2 AS varchar(max),@idx AS bigint;

    IF @value IS null
        return null;

    SELECT @result = @value;  
    SELECT @result2 = '';
    SELECT @idx = 1;

    WHILE substring(@result,@idx,1) != 0 AND @idx < len(@result)
        BEGIN
            SET @result2 = @result2 + cast(substring(@result,1) as char(1));  
            SET @idx = @idx + 1;
        END

    RETURN @result2;  

END

可是,我不知道这对你有多大辅佐,由于无论行使这些字段的应用措施是何等也许处理赏罚的值与此函数所祈望的差异.对付记录,此函数回收varbinary值,该值最初为utf-8字符串,并返回该字符串的varchar值.祝你好运!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读