正常情況下我們對數據庫的操作就是如下的寫法來操作數據庫
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)