C#中驗(yàn)證sql語句是否正確(不執(zhí)行語句)
SET PARSEONLY
檢查每個(gè) Transact-SQL 語句的語法并返回任何錯(cuò)誤消息,但不編譯和執(zhí)行語句。
SET PARSEONLY { ON | OFF }
當(dāng) SET PARSEONLY 為 ON 時(shí),SQL Server 只分析語句。當(dāng) SET PARSEONLY 為 OFF 時(shí),SQL Server 編譯并執(zhí)行語句。
SET PARSEONLY 的設(shè)置是在分析時(shí)設(shè)置,而不是在執(zhí)行或運(yùn)行時(shí)設(shè)置。
在存儲(chǔ)過程或觸發(fā)器中不要使用 PARSEONLY。如果 OFFSETS 選項(xiàng)為 ON 而且沒有出現(xiàn)錯(cuò)誤,則 SET PARSEONLY 返回偏移量。
SET NOEXEC (Transact-SQL)
編譯每個(gè)查詢但不執(zhí)行查詢。
SET NOEXEC { ON | OFF }
當(dāng) SET NOEXEC 為 ON 時(shí),SQL Server 將編譯每一批處理 Transact-SQL 語句但并不執(zhí)行它們。當(dāng) SET NOEXEC 設(shè)置為 OFF 時(shí),所有批處理將在編譯后執(zhí)行。
SQL Server 中的語句執(zhí)行包含兩個(gè)階段:編譯和執(zhí)行。該設(shè)置可用于讓 SQL Server 在執(zhí)行 Transact-SQL 代碼時(shí),驗(yàn)證代碼中的語法和對(duì)象名。它也可以用于調(diào)試通常是較大的批處理中的部分語句。
SET NOEXEC 設(shè)置是在執(zhí)行或運(yùn)行時(shí)設(shè)置,而不是在分析時(shí)設(shè)置。
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;
}
相關(guān)文章
C#進(jìn)行圖像處理的常見方法(Bitmap,BitmapData,IntPtr)使用詳解
這篇文章主要為大家詳細(xì)介紹了C#進(jìn)行圖像處理的幾個(gè)常見方法(Bitmap,BitmapData,IntPtr)具體使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-01-01
C#實(shí)現(xiàn)計(jì)算器功能(winform版)
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)winform版的計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
WinForm項(xiàng)目開發(fā)中Excel用法實(shí)例解析
這篇文章主要介紹了WinForm項(xiàng)目開發(fā)中Excel用法,非常實(shí)用,需要的朋友可以參考下2014-08-08
C#將部分Controls數(shù)據(jù)導(dǎo)入對(duì)象并存入ini中的操作方法
在Winform設(shè)計(jì)中,經(jīng)常需要將控件數(shù)據(jù)導(dǎo)出到屬性或字段中,本文詳細(xì)介紹了如何優(yōu)化這一過程,包括控件和屬性的遍歷,以及使用FieldInfo的getSet函數(shù)和Ini類庫來實(shí)現(xiàn)數(shù)據(jù)的有效存儲(chǔ)和轉(zhuǎn)換,感興趣的朋友跟隨小編一起看看吧2024-10-10
C#使用Microsoft消息隊(duì)列(MSMQ)的示例詳解
Microsoft?Message?Queuing?(MSMQ)?是在多個(gè)不同的應(yīng)用之間實(shí)現(xiàn)相互通信的一種異步傳輸模式,本文主要介紹了C#如何使用Microsoft消息隊(duì)列,需要的可以了解下2024-01-01

