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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM