91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何創建CLR對象

發布時間:2021-12-03 14:52:40 來源:億速云 閱讀:225 作者:小新 欄目:編程語言

這篇文章主要介紹了如何創建CLR對象,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一 創建CLR對象

1.在解決方案中添加新的C#SQL數據庫項目,命名為“ServiceClient”
2.為你的目標數據庫選擇或添加注釋。(如果未被提示:右擊ServiceClient項目,選擇屬性,數據庫,瀏覽并選擇你的連接)
3.為創建的服務添加聲明
1)在解決方案瀏覽器中右擊“service”項目,選擇“調試”>“Start New Instance”
2)服務運行:右擊“ServiceClient”項目,選擇“Add Service Reference”
3)在“Service URI”中輸入:http://localhost:8000/services
4)點擊“OK”

二 CLR觸發器案例

[Microsoft.SqlServer.Server.SqlTrigger(Name="Trigger1",Target="ERP_STOCKYaoHuoDingDan",Event="FORINSERT")]  publicstaticvoidDingDanIDSameGongYingShangGUIDMustSame()  {  using(SqlConnectionconnection=newSqlConnection(@"contextconnection=true"))  {  connection.Open();  SqlCommandcommand=newSqlCommand(@"SELECTCOUNT(A.DingDanID)FROMERP_STOCKYaoHuoDingDanASA,INSERTEDASBWHEREA.DingDanID=B.DingDanIDANDA.GongYingShangGUID<>B.GongYingShangGUID",connection);  inti=(int)command.ExecuteScalar();  if(i>0)  {  try  {  //如果要插入的記錄不合法,則回滾.  TransactionTransactiontrans=Transaction.Current;  trans.Rollback();  }  catch(SqlExceptionex)  {

當在觸發器內部調用Transaction.Rollback方法時,將引發異常并顯示不明確的錯誤消息,必須在try/catch塊中包裝此方法或命令。您會看到如下錯誤消息:

Msg6549,Level16,State1,Proceduretrig_InsertValidator,Line0A.NETFrameworkerroroccurredduringexecutionofuserdefinedroutineoraggregate  'trig_InsertValidator':System.Data.SqlClient.SqlException:Transactionisnotallowedtorollbackinsideauserdefinedroutine,  triggeroraggregatebecausethetransactionisnotstartedinthatCLRlevel.Changeapplicationlogictoenforcestricttransactionnesting…Usertransaction,ifany,willberolledback.  此異常是預期行為,需要try/catch塊才能繼續執行代碼。當完成執行觸發器代碼時,將引發另一個異常。  Msg3991,Level16,State1,Proceduretrig_InsertValidator,Line1Thecontexttransactionwhichwasactivebeforeenteringuserdefinedroutine,  triggeroraggregate"trig_InsertValidator"hasbeenendedinsideofit,whichisnotallowed.Changeapplicationlogictoenforcestricttransactionnesting.  Thestatementhasbeenterminated.此異常也是預期行為。  }  }  connection.Close();  }  }

調用CLR觸發器的例子

盡管引發了兩個異常,仍可以回滾事務,并且更改不會提交到表中。

try  {  //用到此觸發器的方法  }  catch(SqlExceptionex)  {  if(ex.Number==3991)  {  LabelInfor.Text="同一張訂單必須是同一家供應商。";  }  }  catch(Exceptionex)  {  }

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何創建CLR對象”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

clr
AI

甘孜县| 荣成市| 金平| 洮南市| 新津县| 江津市| 华宁县| 兴安县| 浦东新区| 石狮市| 崇信县| 大埔县| 嘉黎县| 浮梁县| 巴楚县| 晋江市| 富顺县| 长岛县| 崇州市| 靖边县| 陈巴尔虎旗| 德安县| 富宁县| 周至县| 运城市| 佛教| 临江市| 鹰潭市| 五河县| 青州市| 宜春市| 余姚市| 桐庐县| 彩票| 肥乡县| 怀仁县| 鲜城| 元谋县| 广州市| 龙江县| 丰原市|