乘风原创程序

    当前位置:首页>>数据库>>Mssql>>通过T-SQL语句创建游标与实现数据库加解密功能
  • 通过T-SQL语句创建游标与实现数据库加解密功能
  • 2022/3/15 15:12:10
  • 通过动态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语句创建游标与实现数据库加解密功能的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持本教程网。