版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、SQLServerCLR全攻略全攻略CLR介紹和配置介紹和配置MicrosoftSQLServer現(xiàn)在具備與MicrosoftWindows.Framewk的公共語言運(yùn)行時(shí)(CLR)組件集成的功能。CLR為托管代碼提供服務(wù),例如跨語言集成、代碼訪問安全性、對象生存期管理以及調(diào)試和分析支持。對于SQLServer用戶和應(yīng)用程序開發(fā)人員來說,CLR集成意味著您現(xiàn)在可以使用任何.Framewk語言(包括MicrosoftVisualBasic
2、.和MicrosoftVisualC#)編寫存儲(chǔ)過程、觸發(fā)器、用戶定義類型、用戶定義函數(shù)(標(biāo)量函數(shù)和表值函數(shù))以及用戶定義的聚合函數(shù)。下面列出了這一集成的其中一些主要優(yōu)點(diǎn):更好的編程模型。改進(jìn)了安全和安全性。能夠定義數(shù)據(jù)類型和聚合函數(shù)。通過標(biāo)準(zhǔn)化環(huán)境簡化了開發(fā)。具備改善性能和可擴(kuò)展性的潛力。既然CLR這么靈活,那么我們?nèi)绾卧赥SQL和CLR之間做出選擇呢?一般情況下,我們當(dāng)以TSQL為主,在下面幾種情況下,應(yīng)該考慮使用CLR:SQL中涉
3、及大量的邏輯判斷和邏輯運(yùn)算。比如需要在數(shù)據(jù)庫級別自定義加密算法,解密算法等。TSQL無法處理需求。比如需要在SQL中進(jìn)行正規(guī)表達(dá)式的判斷等。邏輯判斷過于復(fù)雜,需要使用大量游標(biāo)進(jìn)行處理。這種情況一般要進(jìn)行測試,因?yàn)镃LR不一定比游標(biāo)快,關(guān)鍵是看你怎么寫。下面介紹一下如何開啟CLR和兩種創(chuàng)建CLR的方法。關(guān)于如何在VS中編寫CLR程序,請看后續(xù)章節(jié)。開啟CLR。在SQLServer20052008里面,CLR默認(rèn)是關(guān)閉的??梢允褂萌缦耂QL
4、語句開啟CLR。sp_configureshowadvancedoptions1GORECONFIGUREGOsp_configureclrenabled1GORECONFIGUREGO創(chuàng)建CLR。方法一:使用DLL文件進(jìn)行創(chuàng)建CREATEASSEMBLYAssemblyNamefrom‘DLLPath’2.使用SqlContext.Pipe.Send構(gòu)建帶參無返回值的存儲(chǔ)過程[Microsoft.SqlServer.Server.Sq
5、lProcedure]publicstaticvoidUSP_SayHelloByParameter(SqlStringmsg)SqlContext.Pipe.Send(msg.ToString())3.使用SqlContext.Pipe.Send構(gòu)建帶參有返回值的存儲(chǔ)過程[Microsoft.SqlServer.Server.SqlProcedure]publicstaticSqlInt32USP_SayHelloByReturn(S
6、qlStringmsg)returnmsg.ToString().Length4.使用SqlComm來執(zhí)行語句,注意這里使用了SQLServer自帶的pubs數(shù)據(jù)庫[Microsoft.SqlServer.Server.SqlProcedure]publicstaticvoidUSP_ExecuteBySqlComm(SqlStringst_idSqlStringst_name)由于程序是在SQLServer內(nèi)執(zhí)行,所以連接字符串寫成“
7、contextconnection=true“即可using(SqlConnectioncon=newSqlConnection(“contextconnection=true“))con.Open()SqlCommcom=newSqlComm(string.Fmat(“intostesvalues(01)“st_idst_name)con)com.ExecuteNonQuery()5.使用ExecuteSend來執(zhí)行語句,注意這里使用
8、了SQLServer自帶的pubs數(shù)據(jù)庫[Microsoft.SqlServer.Server.SqlProcedure]publicstaticvoidUSP_ExecuteByExecuteSend(SqlStringst_idSqlStringst_name)由于程序是在SQLServer內(nèi)執(zhí)行,所以連接字符串寫成“contextconnection=true“即可using(SqlConnectioncon=newSqlConn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論