insert into yonghu select id,name,encryptbykey(key_guid('sym_pwd'),substring(password,2,3) from aa为什么执行结果显示只能插入第二个字符,而不是从第二个开始的三个字符呢,希望有过类似经历的同行帮忙一下!谢谢!我想实现的是将密码字段的值分开存储,有其他更好的办法没有? 
我用的是sql server 2005

解决方案 »

  1.   

    substring没问题 , 看看你的表结构
      

  2.   

    create table yonghu
    (id int,
     name varchar(20),
     password varbinary(5000)
    )
      

  3.   

    insert into yonghu select id,name,encryptbykey(key_guid('sym_pwd'),substring(password,2,3) from aa这些是虾米东东,SUBSTRING函数没问题,如果你觉得有错,SELECT SUBSTRING('AAAAAAAA',2,3)
    --OR
    SELECT SUBSTRING('AAA',2,3)
      

  4.   

    encryptbykey(key_guid('sym_pwd'),substring(password,2,3))这个函数有问题吗?
      

  5.   

    encryptbykey的第二个参数的长度声明的是多少?
    估计是这个函数参数长度造成的。
      

  6.   

    找出来原因了,是因为password字段加密的话必须定义成varbinary类型的,而使用substring函数时必须是字符串类型的才行,谢谢各位的提醒,因为本人涉及数据库不深,还请以后多指教!