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


Posted in SQL Server onMarch 16, 2022

通过动态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语句创建游标与实现数据库加解密功能的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

SQL Server 相关文章推荐
如何有效防止sql注入的方法
May 25 SQL Server
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
Jun 30 SQL Server
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
Jun 30 SQL Server
SQLServer中exists和except用法介绍
Dec 04 SQL Server
SQL Server查询某个字段在哪些表中存在
Mar 03 SQL Server
SQL Server的存储过程与触发器以及系统函数和自定义函数
Apr 10 SQL Server
Sql Server 行数据的某列值想作为字段列显示的方法
Apr 20 SQL Server
SQL Server中搜索特定的对象
May 25 SQL Server
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
May 25 SQL Server
SQL使用复合索引实现数据库查询的优化
May 25 SQL Server
SQL解决未能删除约束问题drop constraint
May 30 SQL Server
MySQL 中如何归档数据的实现方法
SQL Server查询某个字段在哪些表中存在
Mar 03 #SQL Server
sql时间段切分实现每隔x分钟出一份高速门架车流量
Feb 28 #SQL Server
使用SQL实现车流量的计算的示例代码
Feb 28 #SQL Server
Sql Server之数据类型详解
Feb 28 #SQL Server
sql server 累计求和实现代码
Feb 28 #SQL Server
SQL SERVER触发器详解
Feb 24 #SQL Server
You might like
xml+php动态载入与分页
2006/10/09 PHP
文件系统基本操作类
2006/11/23 PHP
php getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
PHP运行模式的深入理解
2013/06/03 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
php上传文件并存储到mysql数据库的方法
2015/03/16 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
JavaScript QueryString解析类代码
2010/01/17 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
原生js二级联动效果
2017/06/20 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
2018/11/20 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
Python入门篇之文件
2014/10/20 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
python源文件的字符编码知识点详解
2021/03/04 Python
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
会计顶岗实习心得
2014/01/25 职场文书
优秀辅导员事迹材料
2014/02/16 职场文书
保卫钓鱼岛口号
2014/06/20 职场文书
班组拓展活动方案
2014/08/14 职场文书
golang协程池模拟实现群发邮件功能
2021/05/02 Golang
压缩Redis里的字符串大对象操作
2021/06/23 Redis
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
我的收音机情缘
2022/04/05 无线电