sql T_sql 关于CLR扩展存储过程的使用

前面我们已经对CLR中的扩展函数有了一定的了解了,那么我们想扩展数据库的存储过程,是否也可以呢,答案是肯定的。

我们接下来就介绍下扩展存储过程的做法。

①,接之前我们创建的数据库项目,在项目中我们创建一个存储过程类 StoredProcedureClass.cs,代码如下:

using System;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

using Microsoft.SqlServer.Server;

public partial class StoredProcedures

{

    //这里是告诉sqlserver,这个方法要注册成存储过程

    //这个例子主要是实现sql语句,查询表instore的所有数据。

    [Microsoft.SqlServer.Server.SqlProcedure]

    public static void TestStoredProcedure()

    {

        using (SqlConnection cn = new SqlConnection())

        {

            //使用上下文链接也就是当前数据库链接

            cn.ConnectionString = "context connection=true";

            using (SqlCommand cmd = cn.CreateCommand())

            {

                cmd.CommandText = "Select * from instore";

                cn.Open();

                //SqlContext.Pipe.Send这个方法输出结果集

                //接受SqlDataReader,SqlDataRecordstring

                SqlContext.Pipe.Send(cmd.ExecuteReader());

                //你也可以用下边这样

                //SqlContext.Pipe.ExecuteAndSend(cmd);

            }

        }

    }

};

 

 编译部署完成后,我们会在存储过程那里看到我们已经创建好存储过程TestStoredProcedure

 

接下来执行该存储过程,我们可以在服务器资源管理器这里选择TestStoredProcedure,右键执行,也可以,在数据库sql里面用

exec TestStoredProcedure ,结果都是一样的。

如果需要调试,请参考前面发表的关于CLR调试方法。

 

 

这就是扩展存储过程的简单应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值