create procedure SP_INS_PUBLIC_NHANVIEN
@manv varchar(20),
@hoten nvarchar(100),
@email varchar(20),
@luongcb varbinary ,
@tendn nvarchar(100),
@mk varchar
as
create asymmetric key mahoaluongi
with algorithm = RSA_512
encryption by password = @mk
insert into nhanvien values (@manv,@hoten,@email,ENCRYPTBYASYMKEY(mahoaluongi,@luongcb),@tendn,HASHBYTES('SHA1',@mk),@manv)
drop asymmetric key mahoaluongi
go
Я хочу каждый раз создавать новый асимметричный ключ с новым паролем, передаваемым из параметра хранимой процедуры. я получаю сообщение об ошибке
Неверный синтаксис рядом с @mk. ожидается STRING или TEXT_LEX.
Но преобразовать varchar в STRING с помощью cast
или convert
было невозможно.
Я использую SQL Server 2014
sp_
для своих хранимых процедур. Microsoft зарезервировала этот префикс для собственного использования ( см. Именование хранимых процедур), и вы рискуете столкнуться с конфликтом имен в будущем. Это также плохо сказывается на производительности ваших хранимых процедур. Лучше просто избегатьsp_
и использовать в качестве префикса что-то другое - или вообще не использовать префикс! - person marc_s   schedule 06.05.2015nhanvien
, а затем удаляете ее. Как вы потом будете расшифровывать данные? - person ughai   schedule 06.05.2015