帶參數(shù)的sql和不帶參數(shù)的sql存儲過程區(qū)別
更新時間:2008年09月03日 00:27:14 作者:
來執(zhí)行我們sql語句,看到很多分頁存儲過程都是直接拼湊sql語句然后用exec('')執(zhí)行起來了,這個從效率和安全上面來說,都是不推薦的。
cmd.Connection.Open();
cmd.ExecuteNonQuery();
//第一次執(zhí)行結(jié)束
cmd.Parameters.Clear();
cmd.CommandText = "SELECT SCOPE_IDENTITY()";
//System.Diagnostics.Debug.Assert(cmd.ExecuteScalar()==null);
Console.WriteLine(cmd.ExecuteScalar().ToString());
//第二次執(zhí)行結(jié)束
cmd.Connection.Close();
Console.WriteLine("第一次測試結(jié)束");
Console.Read();
cmd.CommandText = "insert into lcs_Sys_Model ([Model_GUID],[Model_Name],[Model_Desp],[Model_IsSys]) values ( 'F3CD1369-58C0-4A1F-AF88-05FCF734E079','name','desp',1 )";
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.CommandText = "SELECT SCOPE_IDENTITY()";
Console.WriteLine(cmd.ExecuteScalar().ToString());
cmd.Connection.Close();
Console.WriteLine("第二次測試結(jié)束");
Console.Read();
本來想用參數(shù)化的sql插入一條記錄再取回自增的值的。發(fā)現(xiàn)數(shù)據(jù)庫端是這個執(zhí)行方式。那就沒戲啦。。。只能改變sql語句。把自增放到sql的最后去取啦。。
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
SELECT SCOPE_IDENTITY()
在查詢分析器里面最后確認(rèn)運行一下。。。這二個是不同的范圍的,是取不到值的。。
最后提配一點,為了性能和安全,我們在寫存儲過程的時候也要使用
exec sp_executesql '帶參數(shù)的sql語句','參數(shù)定義語句,多個參數(shù)用,號分隔',參數(shù)賦值1,參數(shù)賦值2,參數(shù)賦值3```
來執(zhí)行我們sql語句,看到很多分頁存儲過程都是直接拼湊sql語句然后用exec('')執(zhí)行起來了,這個從效率和安全上面來說,都是不推薦的。
相關(guān)文章
快速解決openGauss數(shù)據(jù)庫pg_xlog爆滿問題
這篇文章主要介紹了openGauss數(shù)據(jù)庫pg_xlog爆滿問題解決,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
GaussDB數(shù)據(jù)庫何創(chuàng)建修改數(shù)據(jù)庫和數(shù)據(jù)表的方法
GaussDB 是一款由華為開發(fā)的企業(yè)級分布式數(shù)據(jù)庫,具有高性能、高可用、高可靠性等特點,廣泛應(yīng)用于各種業(yè)務(wù)場景,本指南將介紹如何在 GaussDB 中創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表,修改表結(jié)構(gòu),并添加約束,需要的朋友可以參考下2024-06-06
redis數(shù)據(jù)庫查找key在內(nèi)存中的位置的方法
這篇文章主要介紹了redis數(shù)據(jù)庫查找key在內(nèi)存中的位置的方法,需要的朋友可以參考下2014-03-03

