主頁 > 知識庫 > 帶參數(shù)的sql和不帶參數(shù)的sql存儲過程區(qū)別第1/2頁

帶參數(shù)的sql和不帶參數(shù)的sql存儲過程區(qū)別第1/2頁

熱門標簽:漯河電銷回撥外呼系統(tǒng) 美國地圖標注軟件下載 西安電話自動外呼系統(tǒng) 硅基電話機器人官網(wǎng) 長沙外呼系統(tǒng)平臺 電話機器人怎么看余額 怎么修改高德地圖標注 合肥crm外呼系統(tǒng)加盟 城市地圖標志怎么標注
帶參數(shù)的sql語句,在數(shù)據(jù)庫端,執(zhí)行的是
exec sp_executesql
eg:

exec sp_executesql N'insert into LCS_Sys_Model ([Model_GUID],[Model_Name],[Model_Desp],[Model_IsSys]) values ( @Model_GUID,@Model_Name,@Model_Desp,@Model_IsSys)', N'@Model_GUID uniqueidentifier,@Model_Name nvarchar(50),@Model_Desp nvarchar(500),@Model_IsSys bit', @Model_GUID = 'F3CD1369-58C0-4A1F-AF88-05FCF734E079', @Model_Name = N'測試實體模型', @Model_Desp = N'實體模型描述', @Model_IsSys = 0


沒有帶值的sql語句。其執(zhí)行是直接的sql語句。
insert into lcs_Sys_Model ([Model_GUID],[Model_Name],[Model_Desp],[Model_IsSys]) values ( 'F3CD1369-58C0-4A1F-AF88-05FCF734E079','name','desp',1 )


看上面的執(zhí)行代碼,你會不會認為是下面的高效?。空f實話我也沒有仔細測試過。可是據(jù)我所知,sqlserver能夠緩存參數(shù)信息和sql編譯后的信息,第一句帶參 數(shù)的sql因為前面一部是不變的(紅色部分)。所以能夠緩存起來(就像執(zhí)行存儲過程一樣)。而下面的一句sql。因為value后面的值總是不固定,因此 sqlserver總是認為是不同的sql語句。因此每次都要重新編譯生成。

以上結(jié)論來源于下面的測試代碼。

System.Data.SqlClient.SqlParameter[] parameters = {
new SqlParameter("@Model_GUID", SqlDbType.UniqueIdentifier),
new SqlParameter("@Model_Name", SqlDbType.NVarChar,50),
new SqlParameter("@Model_Desp", SqlDbType.NVarChar,500),
new SqlParameter("@Model_IsSys", SqlDbType.Bit)
};
parameters[0].Value = new Guid("F3CD1369-58C0-4A1F-AF88-05FCF734E079");
parameters[1].Value = "測試實體模型";
parameters[2].Value = "實體模型描述";
parameters[3].Value = false;



string connStr = @"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=officially;Data Source=LCSNB"SQL2K";
string cmdStr = "insert into LCS_Sys_Model ([Model_GUID],[Model_Name],[Model_Desp],[Model_IsSys]) values ( @Model_GUID,@Model_Name,@Model_Desp,@Model_IsSys)";

System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connStr);
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(cmdStr);

cmd.Connection = conn;
foreach (var item in parameters)
{
cmd.Parameters.Add(item);
}

12下一頁閱讀全文

標簽:撫順 瀘州 濟源 玉溪 文山 廣西 吉林 商洛

巨人網(wǎng)絡(luò)通訊聲明:本文標題《帶參數(shù)的sql和不帶參數(shù)的sql存儲過程區(qū)別第1/2頁》,本文關(guān)鍵詞  帶,參數(shù),的,sql,和,不帶,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《帶參數(shù)的sql和不帶參數(shù)的sql存儲過程區(qū)別第1/2頁》相關(guān)的同類信息!
  • 本頁收集關(guān)于帶參數(shù)的sql和不帶參數(shù)的sql存儲過程區(qū)別第1/2頁的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章