欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2008年09月03日 00:27:14   作者:  
來執(zhí)行我們sql語句,看到很多分頁存儲過程都是直接拼湊sql語句然后用exec('')執(zhí)行起來了,這個從效率和安全上面來說,都是不推薦的。

cmd.Connection.Open();
cmd.ExecuteNonQuery();
//第一次執(zhí)行結束
cmd.Parameters.Clear();
cmd.CommandText = "SELECT SCOPE_IDENTITY()";

//System.Diagnostics.Debug.Assert(cmd.ExecuteScalar()==null);

Console.WriteLine(cmd.ExecuteScalar().ToString());
//第二次執(zhí)行結束
cmd.Connection.Close();

Console.WriteLine("第一次測試結束");
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("第二次測試結束");
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()


在查詢分析器里面最后確認運行一下。。。這二個是不同的范圍的,是取不到值的。。


最后提配一點,為了性能和安全,我們在寫存儲過程的時候也要使用

exec sp_executesql '帶參數(shù)的sql語句','參數(shù)定義語句,多個參數(shù)用,號分隔',參數(shù)賦值1,參數(shù)賦值2,參數(shù)賦值3```

來執(zhí)行我們sql語句,看到很多分頁存儲過程都是直接拼湊sql語句然后用exec('')執(zhí)行起來了,這個從效率和安全上面來說,都是不推薦的。

相關文章

最新評論