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
![](http://hi.csdn.net/attachment/201007/1/0_1277978585Vnaa.gif)
接下来执行该存储过程,我们可以在服务器资源管理器这里选择TestStoredProcedure,右键执行,也可以,在数据库sql里面用
exec TestStoredProcedure ,结果都是一样的。
如果需要调试,请参考前面发表的关于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
![](http://hi.csdn.net/attachment/201007/1/0_1277978585Vnaa.gif)
接下来执行该存储过程,我们可以在服务器资源管理器这里选择TestStoredProcedure,右键执行,也可以,在数据库sql里面用
exec TestStoredProcedure ,结果都是一样的。
如果需要调试,请参考前面发表的关于CLR调试方法。
这就是扩展存储过程的简单应用。
相关文章推荐
- sql T_sql 关于CLR扩展函数的使用(1)
- 编写CLR存储过程中使用SqlDataRecord
- sql T_sql 关于CLR扩展函数的使用(2)
- 编写CLR存储过程中使用SqlDataRecord
- 使用sql server CLR项目生成的存储过程不返回值问题
- SQLServer--常用的扩展存储过程使用
- ASP程序与SQL存储过程结合使用详解
- SQL Server CLR 存储过程回送结果七种武器
- SQL Server CLR全功略之二---CLR存储过程
- MySQL存储过程中使用动态SQL与静态SQL的区别
- SQL存储过程中条件为空的使用
- SQLSERVER 存储过程中动态SQL的使用
- SQL扩展存储过程安装与卸载
- 使用ADO.NET 实体数据模型实现SQL存储过程调用
- 在sql的函数里面不能使用insert语句,估计update、delete也不行,改为存储过程就行了。
- 关于存储过程中,使用mod取余的函数
- C++ 实现Microsoft SQL Server 2000 的扩展存储过程
- 编写安全的SQL Server扩展存储过程
- [转]关于SQL分页存储过程的分析
- 使用SQL Mail收发和自动处理邮件中的扩展存储过程简介