通过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 相关文章推荐
SqlServer 垂直分表(减少程序改动)
Apr 16 SQL Server
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
Jul 07 SQL Server
SQL Server的存储过程与触发器以及系统函数和自定义函数
Apr 10 SQL Server
如何使用SQL Server语句创建表
Apr 12 SQL Server
SQLServer权限之只开启创建表权限
Apr 12 SQL Server
SQL Server 忘记密码以及重新添加新账号
Apr 26 SQL Server
SQL Server #{}可以防止SQL注入
May 11 SQL Server
SQL Server中的游标介绍
May 20 SQL Server
SQL Server中锁的用法
May 20 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
php 中文处理函数集合
2008/08/27 PHP
PHP 程序员也要学会使用“异常”
2009/06/16 PHP
超级简单的php+mysql留言本源码
2009/11/11 PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
2011/07/04 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
ajax 文件上传应用简单实现
2009/03/03 Javascript
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
Python使用剪切板的方法
2017/06/06 Python
Django视图和URL配置详解
2018/01/31 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
python能做哪些生活有趣的事情
2020/09/09 Python
2014学雷锋活动总结
2014/03/09 职场文书
委托公证书范本
2014/04/03 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
2014年物资管理工作总结
2014/12/02 职场文书
还款承诺书范本
2015/01/20 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android