博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqlserver之二进制和字符串sql语句
阅读量:5911 次
发布时间:2019-06-19

本文共 939 字,大约阅读时间需要 3 分钟。

  正常情况下我们对数据库的操作就是如下的写法来操作数据库

SELECT TOP 10 ID AS 编号,BookName AS 书名 FROM dbo.books ORDER BY ID; UPDATE dbo.books SET BookName='新的书名' WHERE ID=1233; DELETE FROM dbo.books WHERE ID=122

     但是在客户正在使用的数据库里,我们开发人员一般不能够直接操作数据库,但是会给我们做一个网页以便方便我们核对数据,查找错误,但是这种情况下一般都会屏蔽一些关键词,比如update delete,create,alter神马的,一般请客下对客户数据库的操作都得严格按照公司流程来走,这种情况下效率一般都会很低,在这里还有一种情况可以直接让我们对数据库做更改,那就是首先将字符串以二进制的形式骗过后台程序,以便发送到数据库中去执行,如下:

DECLARE @S NVARCHAR(4000) SET @S=CAST(0x53454C45435420544F5020313020494420415320B1E0BAC52C426F6F6B4E616D6520415320CAE9C3FB2046524F4D2064626F2E626F6F6B73204F524445522042592049443B AS VARCHAR(max))PRINT @SEXEC(@S)

下面便是直接把sql语句转换成二进制

DECLARE @str VARCHAR(MAX),@bary VARBINARY(MAX)SET @str='SELECT TOP 10 ID AS 编号,BookName AS 书名 FROM dbo.books ORDER BY ID;'--将字符串转换成二进制对象SET @bary= CAST(@str AS VARBINARY(MAX))PRINT @bary--将二进制对象转换成字符串SET @str=CAST(@bary AS VARCHAR(max))--执行sql脚本EXEC(@str)

 

转载于:https://www.cnblogs.com/qitianshuye/p/4434920.html

你可能感兴趣的文章
js原型继承
查看>>
asterisk学习资料(2)
查看>>
(十三)Maven插件解析运行机制
查看>>
如何删除 SQL Server 表中的重复行
查看>>
火狐浏览器的一些常用设置
查看>>
DESIR队列研究: 早期SpA患者骶髂关节放射学结构损伤的不同定义对结构损伤变化的敏感性...
查看>>
shell(2)
查看>>
【模板】最小生成树
查看>>
洛谷 P2661 信息传递(并查集 & 最小环)
查看>>
Cacti+Nagios完全攻略(二)整合cacti与nagios安装部署
查看>>
IAAS,SAAS,PAAS, CaaS的区别
查看>>
前端lvs+keepalived 后端 lnmp 群集 mysql主从+sersync
查看>>
MFT的0x10标准属性数据结构
查看>>
centos7设置开机启动
查看>>
321
查看>>
嵌入式开发教程,学习嵌入式怎么入门和提高?
查看>>
如何用zabbix 监控 tomcat
查看>>
高维数据的重要属性
查看>>
一个最简单的jQuery插件编写历程
查看>>
WPF 自定义TabControl控件样式
查看>>