1. 配置sql server 启用CLR
在SQL Server2005/2008里面,CLR默认是关闭的。可以使用如下SQL语句开启CLR。
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO
2. 编写对应的.net 代码
[Microsoft.SqlServer.Server.SqlProcedure()]
public static void firstapp1()
{
SqlCommand cmd = new SqlCommand("select * from teptable1");
SqlContext.Pipe.ExecuteAndSend(cmd);
}
3. 添加程序集
如下图:
4. 编写调用的sql
CREATE PROCEDURE [dbo].firstapp1
AS EXTERNAL NAME [MyCLR].[MyCLR.CLRDemo].firstapp
注意调用的写法
5. 客户端调用方法
using (SqlConnection connection = new SqlConnection(@"Data Source=.\sql2012;Initial Catalog=buckInsert;User ID=sa;ApplicationIntent=ReadOnly;password=1234"))
{
DataSet ds = new DataSet();
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "firstapp1";
SqlDataAdapter dp = new SqlDataAdapter(command);
dp.Fill(ds);
DataTable dt = ds.Tables[0].Copy();
foreach (DataRow item in ds.Tables[0].Select("id<1000"))
{
dt.ImportRow(item);
}
dataGridView1.DataSource = dt;
}
6. ssis 调用sql
exec firstapp1
7.测试结果
以上为测试的结果