最稳的pk10计划iphone 北京pk10计划手机软件 北京pk10数字的规律 超神手机版pk10软件 pk10北京赛车9码技巧 pk10四期倍投计划表 pk10极速赛车论坛 北京赛车冠军怎样选5码 北京赛车系统下载安装 pk10教程视频 北京pk10选号公式 北京赛车pk10赚钱技巧 北京赛车怎么提升概率 pk10技巧北京快三 北京pk10大小计划
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;
pk10赛车冠军技巧
最稳的pk10计划iphone 北京pk10计划手机软件 北京pk10数字的规律 超神手机版pk10软件 pk10北京赛车9码技巧 pk10四期倍投计划表 pk10极速赛车论坛 北京赛车冠军怎样选5码 北京赛车系统下载安装 pk10教程视频 北京pk10选号公式 北京赛车pk10赚钱技巧 北京赛车怎么提升概率 pk10技巧北京快三 北京pk10大小计划
广东时时彩玩法说明 看电视赚钱的有 在深圳做物流赚钱吗 北京快乐飞艇官网 1257ad城市赚钱 金蟾捕鱼的打鱼技巧 广西友乐麻将打牌技巧 河南十一选五中奖奖金 360彩票老时时彩