您的位置:首页 > 数据库

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

2010-07-01 18:01 405 查看
前面我们已经对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,SqlDataRecord和string
                SqlContext.Pipe.Send(cmd.ExecuteReader());
                //你也可以用下边这样
                //SqlContext.Pipe.ExecuteAndSend(cmd);
            }
        }
    }
};
 
 编译部署完成后,我们会在存储过程那里看到我们已经创建好存储过程TestStoredProcedure
 





接下来执行该存储过程,我们可以在服务器资源管理器这里选择TestStoredProcedure,右键执行,也可以,在数据库sql里面用
exec TestStoredProcedure ,结果都是一样的。
如果需要调试,请参考前面发表的关于CLR调试方法。
 
 
这就是扩展存储过程的简单应用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息