通过T-SQL语句创建游标与实现数据库加解密功能

通过动态sql语句创建游标

declare @sql varchar(100);
declare @tablename varchar(32);
declare @fieldname varchar(32);
declare @primarykey varchar(32);
declare @dbvalue varchar(32);
declare @pkey int;
 
--赋值
set @tablename='student';
set @fieldname='name';
set @primarykey='id';
--创建动态游标
set @sql = 'declare rowcursor cursor for select '+@primarykey+' as pkey , '+@fieldname
+' as dbvalue from '+@tablename;
exec(@sql);  
--打开游标
open rowcursor; 
--取值
fetch next from rowcursor into @pkey,@dbvalue;
--循环
while(@@fetch_status=0)
    begin
        declare @execsql varchar(100);
        set @execsql='update '+@tablename +' set '+@fieldname+' = 234324324';
        print @execsql
        exec(@execsql)
        fetch next from rowcursor into @pkey,@dbvalue;
    end 
--关闭游标
close rowcursor;
--释放游标控件
deallocate rowcursor;

通过t-sql语句实现数据库加解密功能

create table [dbo].[users]
(
    [u_nbr] nvarchar(20) not null primary key,
    [pwd] nvarchar(max)
)
 
--加密
declare @pwd nvarchar(max)
set @pwd='测试加密'
--将varbinary类型转换成varchar类型
insert into users values ('admin',sys.fn_varbintohexstr(encryptbypassphrase('32423sd',@pwd)))
 
select * from users
 
declare @pv varbinary(max)
declare @str nvarchar(max)
declare @sql nvarchar(max)
--将varchar类型转换成varbinary类型
select @str='0x0100000079e98bc2209c61038f9fc2eaaba24d6b8daad08fd98a41b6'
set @sql=n'set @p='+@str+n';'
    exec sp_executesql   @sql,
                         n'@p as varbinary(max) output',
                         @p=@pv output
print @pv
--解密
select convert(varchar(max),  decryptbypassphrase('123assdss',@pv))
go

到此这篇关于通过t-sql语句创建游标与实现数据库加解密功能的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐