通过动态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。