zoukankan      html  css  js  c++  java
  • sqlserver之二进制和字符串sql语句

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

    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 @S
    EXEC(@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)
  • 相关阅读:
    test
    男神zyh的青睐
    HH的项链
    PAT刷题经验
    LaTeX常用数学符号
    Battle Over Cities Hard Version
    Cut
    文本生成器
    Explorer Space
    2021.04.21
  • 原文地址:https://www.cnblogs.com/qitianshuye/p/4434920.html
Copyright © 2011-2022 走看看