中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

基于SQL2005的CLR存儲過程是怎樣的

發布時間:2021-12-18 21:57:27 來源:億速云 閱讀:181 作者:柒染 欄目:編程語言

基于SQL2005的CLR存儲過程是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

在 SQL Server 2005 中,可以在SQL Server實例中使用以下方法創建數據庫對象:基于 Microsoft .NET Framework 公共語言運行時 (CLR) 創建中的程序集使用編程方法創建。能夠利用由CLR提供的眾多編程模型的數據庫對象包括觸發器、存儲過程、函數、聚合函數和類型。

雖然Transact-SQL是專門為數據庫中的直接數據訪問和操作而設計,但是它沒有提供編程構造來使數據操作和計算更加容易。例如,Transact-SQL 不支持數組、集合、for-each 循環、位轉移或類。

CLR存儲過程提供面向對象的功能,例如封裝、繼承和多態性。現在,相關代碼可以很容易在類和命名空間中進行組織。在使用大量服務器代碼時,這樣可以更容易地組織和維護代碼,通過使用托管代碼而實現某些數據庫功能。

對于計算和復雜的執行邏輯,基于CLR的托管代碼比Transact-SQL 更適合,托管代碼的一個優點是類型安全性,它全面支持許多復雜的任務,包括字符串處理和正則表達式。

通過 .NET Framework 庫中提供的功能,可以訪問數千個預生成的類和例程。可以很容易從任何存儲過程、觸發器或用戶定義函數進行訪問。基類庫包括的類提供用于字符串操作、高級數學運算、文件訪問、加密等的功能。

對于幾乎或根本不需要過程邏輯的數據訪問,還是使用 Transact-SQL。對于具有復雜邏輯的CPU密集型函數和過程最好還是使用托管代碼。

我們看如何在Visual Studio 2005中創建基于SQL Server 2005的CLR存儲過程:

我們打開Visual Studio 2005,在對應數據庫欄目下面有個SQL Server項目,新建立一個項目,命名為StoredStu,確定過后會顯示一個數據庫連接對話框,數據庫連接好后,我們在數據庫中有如下兩個表,如下:

基于SQL2005的CLR存儲過程是怎樣的
StuInfo(學生信息表)

基于SQL2005的CLR存儲過程是怎樣的
Nation(民族表)

新建立一個文件,選擇“存儲過程”的選項,命名為StoredStu,在文件中寫入以下的代碼:

using System;  using System.Data;  using System.Data.SqlClient;  using System.Data.SqlTypes;  using Microsoft.SqlServer.Server;  public partial class StoredProcedures  {      [Microsoft.SqlServer.Server.SqlProcedure]      public static void StoredStu()      {          // 在此處放置代碼          SqlPipe sp = SqlContext.Pipe;          string sql = "Select * from StuInfo";          using (SqlConnection conn = new SqlConnection("context connection=true"))          {              conn.Open();              SqlCommand cmd = new SqlCommand();              cmd.CommandType = CommandType.Text;              cmd.Connection = conn;              cmd.CommandText = sql;              SqlDataReader rdr = cmd.ExecuteReader();              sp.Send(rdr);          }      }      [SqlProcedure]      public static void GetStuInfo(string strNationCode)      {          string sql = "select Stu.StudentName, Stu.StudentNo, Stu.StudentUniversity,Na.NationName from StuInfo Stu inner join Nation Na on Stu.NationCode = Na.NationCode  where Stu.NationCode = '" + @strNationCode + "'";          using (SqlConnection conn = new SqlConnection("context connection=true"))          {              conn.Open();              SqlPipe sp = SqlContext.Pipe;              SqlCommand cmd = new SqlCommand();              cmd.CommandType = CommandType.Text;              cmd.Connection = conn;              cmd.CommandText = sql;              SqlParameter paramstrNationCode = new SqlParameter("@strNationCode", SqlDbType.VarChar, 11);              paramstrNationCode.Direction = ParameterDirection.Input;              paramstrNationCode.Value = strNationCode;              cmd.Parameters.Add(paramstrNationCode);              SqlDataReader rdr = cmd.ExecuteReader();              sp.Send(rdr);          }      }  };

現在我們先對其進行編譯,在“生成”菜單中選擇“生成解決方案”,當編譯完工程后,就需要為其進行部署了。同樣選擇“生成”菜單中的“部署解決方案”, 這樣就會自動將寫好的存儲過程部署到 SQL Server 2005 中去。

為了確保SQL可以執行托管代碼,我們還需要在SQL Server 2005中,執行下面的語句:

EXEC sp_configure "clr enabled", 1;   RECONFIGURE WITH OVERRIDE;   GO

執行顯示的結果如下:

“配置選項'clr enabled' 已從0 更改為1。請運行RECONFIGURE 語句進行安裝。”

這樣就可以創建好CLR存儲過程了。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

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

AI

玉山县| 留坝县| 剑河县| 青阳县| 汝南县| 始兴县| 齐河县| 苏尼特左旗| 平凉市| 上栗县| 阿拉善盟| 德庆县| 赤城县| 麻栗坡县| 灵丘县| 南川市| 鄂伦春自治旗| 萨嘎县| 罗城| 团风县| 茂名市| 渝中区| 郁南县| 华宁县| 弥渡县| 苗栗县| 屏东市| 西吉县| 娄烦县| 巴中市| 花垣县| 济宁市| 边坝县| 确山县| 兴和县| 武穴市| 屯留县| 神木县| 吉林省| 调兵山市| 宕昌县|