加密后字符串值丢失

时间:2018-03-28 09:46:05

标签: sql sql-server sql-server-2008

我在保存到数据库之前加密我的值,我的代码是

 EncryptByKey(Key_GUID('SKEDB_BenName_11'), cast((FirstName + ' ' + Surname) as nvarchar)) ,

AccountName = EncryptByKey(Key_GUID('SKEDB_BenName_11'),UPPER(LTRIM(RTRIM(@AccountName))))

当@AccountName字符串长度达到26时,如果长度高于26,则此代码正常工作,然后它将字符串加密到最多26个值,我希望加密全值。请建议

1 个答案:

答案 0 :(得分:3)

这将默认为30
    cast((FirstName +''+ Surname)as nvarchar))

nvarchar/varchar will default to

  • 30 in CAST
  • 1在其他情况下
  

如果未在数据定义或变量声明语句中指定n,则默认长度为1.如果未使用CAST函数指定n,则默认长度为30

如果你想要,比如100,请使用

cast((FirstName + ' ' + Surname) as nvarchar(100)))