pb 判斷sql 是否合法 檢查SQL語句是否合法

2021-10-17 05:28:13 字數 773 閱讀 2223

昨天又有乙個新的需求:驗證文字框輸入的sql語法是否正確。

首先需要知道「set parseonly 」。

當 set parseonly 為 on 時,sql server 只分析語句。

當 set parseonly為 off 時,sql server 編譯並執行語句。

和 set parseonly 相關的還有set noexec on,

當 set noexec 為 on 時,sql server 將編譯每一條tran-sql語句但並不執行它們。

當 set noexec 為 off 時,sql server 編譯並執行語句。

現在我們就可以完成sql語法檢測的功能了。

下面是具體的**, 可以將其中的 parseonly  調整為 noexec

public static bool validatesql(stringsql)

catch(exception ex)

bresult= false;

loghelper.error("sql語法錯誤" +ex);

}finallyreturnbresult;

他們之間的一些區別:

1.set paraseonly 檢查每個tran-sql 的語法並返回錯誤訊息,不編譯和執行語句。

set noexec 編譯每個查詢但不執行查詢。

2.set paraseonly 的設定是在分析時設定,不是在執行或執行時設定。

set noexec 的設定在執行或執行時設定,不是在分析時設定。

本文**: 

pb 判斷sql 是否合法 檢查SQL語句是否合法

昨天又有乙個新的需求 驗證文字框輸入的sql語法是否正確。首先需要知道 set parseonly 當 set parseonly 為 on 時,sql server 只分析語句。當 set parseonly為 off 時,sql server 編譯並執行語句。和 set parseonly 相關...

檢查SQL語句是否合法

昨天又有乙個新的需求 驗證文字框輸入的sql語法是否正確。首先需要知道 set parseonly 當 set parseonly 為 on 時,sql server 只分析語句。當 set parseonly 為 off 時,sql server 編譯並執行語句。和 set parseonly 相...

判斷操作是否合法A

time limit 1 sec memory limit 128 mb submit 44 solved 14 submit status web board 假設以i和o分別表示進棧和出棧操作,棧的初態和終態均為空,進棧和出棧的操作序列可表示為僅由i和o組成的序列。順序棧的定義為 typedef...