通过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 相关文章推荐
2021-4-3课程——SQL Server查询【2】
Apr 05 SQL Server
SqlServer: 如何更改表的文件组?(进而改变存储位置)
Apr 05 SQL Server
如何有效防止sql注入的方法
May 25 SQL Server
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
Jun 30 SQL Server
SqlServer数据库远程连接案例教程
Jul 15 SQL Server
SQL语句中JOIN的用法场景分析
Jul 25 SQL Server
sql server删除前1000行数据的方法实例
Aug 30 SQL Server
Spark SQL 2.4.8 操作 Dataframe的两种方式
Oct 16 SQL Server
SQL Server数据库查询出现阻塞之性能调优
Apr 10 SQL Server
SQL Server中的游标介绍
May 20 SQL Server
SQL Server数据库备份和恢复数据库的全过程
Jun 14 SQL Server
在SQL Server中使用 Try Catch 处理异常的示例详解
Jul 15 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
PHP 实现explort() 功能的详解
2013/06/20 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
jQuery scrollFix滚动定位插件
2015/04/01 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
ES6 async、await的基本使用方法示例
2020/06/06 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
Php多进程实现代码
2018/05/07 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
一行python实现树形结构的方法
2019/08/09 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
python中的 zip函数详解及用法举例
2020/02/16 Python
python新手学习可变和不可变对象
2020/06/11 Python
Python3获取cookie常用三种方案
2020/10/05 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
高中自我鉴定
2013/12/20 职场文书
同事吵架检讨书
2014/02/05 职场文书
《菜园里》教学反思
2014/04/17 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
红旗渠导游词
2015/02/09 职场文书
三八妇女节寄语
2015/02/27 职场文书
老人节主持词
2015/07/04 职场文书
使用 Apache 反向代理的设置技巧
2022/01/18 Servers