程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> C#中驗證sql語句是否正確(不執行語句)

C#中驗證sql語句是否正確(不執行語句)

編輯:C#基礎知識

SET PARSEONLY
檢查每個 Transact-SQL 語句的語法並返回任何錯誤消息,但不編譯和執行語句。
SET PARSEONLY { ON | OFF }
當 SET PARSEONLY 為 ON 時,SQL Server 只分析語句。當 SET PARSEONLY 為 OFF 時,SQL Server 編譯並執行語句。
SET PARSEONLY 的設置是在分析時設置,而不是在執行或運行時設置。
在存儲過程或觸發器中不要使用 PARSEONLY。如果 OFFSETS 選項為 ON 而且沒有出現錯誤,則 SET PARSEONLY 返回偏移量。

SET NOEXEC (Transact-SQL)
編譯每個查詢但不執行查詢。
SET NOEXEC { ON | OFF }
當 SET NOEXEC 為 ON 時,SQL Server 將編譯每一批處理 Transact-SQL 語句但並不執行它們。當 SET NOEXEC 設置為 OFF 時,所有批處理將在編譯後執行。
SQL Server 中的語句執行包含兩個階段:編譯和執行。該設置可用於讓 SQL Server 在執行 Transact-SQL 代碼時,驗證代碼中的語法和對象名。它也可以用於調試通常是較大的批處理中的部分語句。

SET NOEXEC 設置是在執行或運行時設置,而不是在分析時設置。

SET PARSEONLY的代碼:

代碼如下:

public bool ValidateSQL(string sql) 
    { 
        bool bResult; 

        SqlCommand cmd = _conn.CreateCommand(); 
        cmd.CommandText = "SET PARSEONLY ON"; 
        cmd.ExecuteNonQuery(); 
        try 
        { 
            cmd.CommandText = sql; 
            cmd.ExecuteNonQuery(); 
            bResult = true; 
        } 
        catch (Exception ex) 
        { 
            bResult = false; 
        } 
        finally 
        { 
            cmd.CommandText = "SET PARSEONLY OFF"; 
            cmd.ExecuteNonQuery(); 
        } 

        return bResult; 
    }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved