<address id="xpjh9"><listing id="xpjh9"><meter id="xpjh9"></meter></listing></address>

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
<noframes id="xpjh9">
<noframes id="xpjh9">

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
    <form id="xpjh9"></form><address id="xpjh9"><listing id="xpjh9"><menuitem id="xpjh9"></menuitem></listing></address>

      <noframes id="xpjh9">
      VB.net 2010 視頻教程 VB.net 2010 視頻教程 VB.net 2010 視頻教程
      SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
      當前位置:
      首頁 > 數據庫 > T-SQL >
      • sql語句大全之MSSQL SQl server 2008 CLR 存儲過程創建舉

      • 2019-05-03 15:34 來源:未知

      sql存儲過程功能:向客戶端返回表格信息(select ***)和消息(print),向變量返回值(return);
      sql存儲過程是由-數據定義語言和數據操作語言組成的一組SQL;
      CLR存儲過程:采用.net framework開發的MSSQL存儲過程;
      CLR存儲過程:可完成sql存儲過程所有功能,及調用系統API完成一些特殊功能。



      例一: 創建帶輸出參數的clr存儲過程

      using System;  
      using System.Data.SqlTypes;  
      using System.Data.SqlClient;  
      using Microsoft.SqlServer.Server;   
        
      public class StoredProcedures   
      {  
         //求產品之和
         [Microsoft.SqlServer.Server.SqlProcedure]  
         public static void ParOutTest(out SqlInt32 value)  
         {  
            using(SqlConnection connection = new SqlConnection("context connection=true"))   
            {  
               value = 0;  
               connection.Open();  
               SqlCommand command = new SqlCommand("SELECT qty FROM listInfo", connection);  
               SqlDataReader reader = command.ExecuteReader();  
        
               using (reader)  
               {  
                  while( reader.Read() )  
                  {  
                     value += reader.GetSqlInt32(0);  
                  }  
               }           
            }  
         }  
      }  
      

      注冊程序集
      CREATE ASSEMBLY [dll名稱] FROM ‘C:\*****.dll’;

       


      創建存儲過程
      CREATE PROCEDURE pr_testOutCanShu(@qtyAll int output)
      AS EXTERNAL NAME [命名空間名稱].StoredProcedures.ParOutTest;

       


      執行存儲過程
      declare @t int
      EXEC pr_testOutCanShu @t output;

       



      例二: 創建返回消息的clr存儲過程
      clr存儲過程中,通過SqlPipe.Send(String)想客戶端發送文本消息

       

      using System;  
      using System.Data;  
      using System.Data.SqlTypes;  
      using System.Data.SqlClient;  
      using Microsoft.SqlServer.Server; 
      public class StoredProcedures   
      {  
         ///   
         /// Execute a command and send the results to the client directly.  
         ///   
         [Microsoft.SqlServer.Server.SqlProcedure]  
         public static void PrintInfoToClient()  
         {  
         using(SqlConnection connection = new SqlConnection("context connection=true"))   
         {  
            connection.Open();  
            SqlCommand command = new SqlCommand("select @@version", connection);  
            SqlContext.Pipe.ExecuteAndSend(command);  
            }  
         }  
      }
      

      注冊程序集
      CREATE ASSEMBLY [dll名稱] FROM ‘C:\*****.dll’;

       


      創建存儲過程
      CREATE PROCEDURE pr_testPrintInfo()
      AS EXTERNAL NAME [命名空間名稱].StoredProcedures.PrintInfoToClient;

       


      執行存儲過程
      EXEC pr_testPrintInfo;
      相關教程
      江苏快3 安顺 | 海拉尔 | 那曲 | 南京 | 张家口 | 雄安新区 | 果洛 | 香港香港 | 东台 | 临夏 | 阿勒泰 | 牡丹江 | 三明 | 广饶 | 孝感 | 文昌 | 忻州 | 厦门 | 茂名 | 烟台 | 嘉善 | 宜都 | 南安 | 驻马店 | 新疆乌鲁木齐 | 吕梁 | 通辽 | 泰兴 | 长葛 | 吉安 | 澳门澳门 | 莱芜 | 洛阳 | 新乡 | 金坛 | 沭阳 | 贵州贵阳 | 台北 | 泰兴 | 池州 | 德州 | 广元 | 邹城 | 任丘 | 玉林 | 武安 | 伊春 | 邹城 | 铁岭 | 淄博 | 甘南 | 温岭 | 喀什 | 平潭 | 阿克苏 | 张掖 | 延边 | 连云港 | 柳州 | 黄南 | 济源 | 雅安 | 禹州 | 亳州 | 浙江杭州 | 漯河 | 台北 | 泰兴 | 丹东 | 金坛 | 邹城 | 遂宁 | 白山 | 贵港 | 聊城 | 如皋 | 江门 | 武威 | 阿坝 | 嘉峪关 | 武威 | 攀枝花 | 阿克苏 | 和县 | 仙桃 | 十堰 | 廊坊 | 阿勒泰 | 溧阳 | 乐平 | 茂名 | 威海 | 莱芜 | 吕梁 | 海安 | 保亭 | 资阳 | 延安 | 孝感 | 明港 | 晋江 | 金昌 | 燕郊 | 宜昌 | 台山 | 邳州 | 姜堰 | 保定 | 佳木斯 | 慈溪 | 温州 | 宁德 | 灌云 |