--0xD41D8CD98F00B204E9800998ECF8427E 这是一个加密后的16进制串 类型为Binary
select CAST(0xD41D8CD98F00B204E9800998ECF8427E AS uniqueidentifier) --转换为唯一标识
------------------------------------ 查询结果
D98C1DD4-008F-04B2-E980-0998ECF8427E(1 行受影响)
     
select CAST('{D98C1DD4-008F-04B2-E980-0998ECF8427E}' AS Binary(16)) --然后转回来
----------------------------------
0x7B44393843314444342D303038462D30(1 行受影响)
--0x7B44393843314444342D303038462D30 跟原来的 0xD41D8CD98F00B204E9800998ECF8427E 不一至
谁能帮我解释下呢

解决方案 »

  1.   

    只要用到 uniqueidentifier,都是系统给你一个数,而不是你指定一个什么数.
      

  2.   

    select  CAST('0xD41D8CD98F00B204E9800998ECF8427E' AS Binary(16)) 
    ----------------------------------
    0x30784434314438434439384630304232(1 row(s) affected)我直接这样转 还是变了啊 
      

  3.   

    '0xD41D8CD98F00B204E9800998ECF8427E'是字符串
    0xD41D8CD98F00B204E9800998ECF8427E 是二进制字节
      

  4.   

    declare @myid uniqueidentifier 
    set @myid = 'fe2264aa-02ce-4fe6-81c2-1a27a12a05fd'
    select cast(@myid as binary(16))  
    select cast(0xaa6422fece02e64f81c21a27a12a05fd as uniqueidentifier)     
      

  5.   

    直接在sql server里处理不就行了?写个存储过程, 然后vb6调用执行存储过程.
      

  6.   

    我们传输数据 是通过配置文件XML  让用户自己配置想导哪些数据 就导哪些数据
    做得比较活了
      

  7.   

    我们这是异地传输,
    都是把要传输的数据存储在XML上 然后将XML打包发到FTP
    最后哪里需要就从FTP中取 取出解压生成SQL语句执行
    简单说就是这样一个流程
      

  8.   

    那你现在的问题是,如何把16进制串按原样显示成文本形式(也就是XML里)是吗?
      

  9.   

    其实16进制存储再XML中是没问题的
    比如 0xd41d8cd98f00b204e9800998ecf8427e 他存储再XML中是d41d8cd98f00b204e9800998ecf8427e
    但问题是我从XML中取出d41d8cd98f00b204e9800998ecf8427e 并加上0x前缀拼成SQL 执行就报错。
    我跟了下代码 IF EXISTS(SELECT * FROM HR_BASE_USER WHERE ID='{2A09D6AF-3393-4732-AC33-AC8E69BC77D1}') 
      UPDATE HR_BASE_USER SET ID='{2A09D6AF-3393-4732-AC33-AC8E69BC77D1}' , ACCOUNT='GET0005166' , DELETED=0 , NTACCOUNT='' , PASSWORDHASHVALUE=0x????胩頉?繂 , BUILT_IN=0 , SYSUSER=0 , ISADMIN=0 , ISSTOP=1 , FUSERID=21528 , FEMPID='{866B684D-A3AF-4DAF-904E-C10D00CFA8C7}' , FOPENPWD='' , FISALLOWLOGINEXPIRED=1 WHERE ID='{2A09D6AF-3393-4732-AC33-AC8E69BC77D1}' ELSE 
      INSERT INTO HR_BASE_USER (ID,ACCOUNT,DELETED,NTACCOUNT,PASSWORDHASHVALUE,BUILT_IN,SYSUSER,ISADMIN,ISSTOP,FUSERID,FEMPID,FOPENPWD,FISALLOWLOGINEXPIRED) VALUES('{2A09D6AF-3393-4732-AC33-AC8E69BC77D1}' , 'GET0005166' , 0 , '' , 0x????胩頉?繂 , 0 , 0 , 0 , 1 , 21528 , '{866B684D-A3AF-4DAF-904E-C10D00CFA8C7}' , '' , 1)
    这里成了乱码PASSWORDHASHVALUE=0x????胩頉?繂 
      

  10.   

    我想请问下 SQL中有没有这样一个函数 将d41d8cd98f00b204e9800998ecf8427e 与0x进行拼接
    比如   函数名('0x','d41d8cd98f00b204e9800998ecf8427e ') SQL中执行的时候再将
    他们拼接起来 0xd41d8cd98f00b204e9800998ecf8427e