下面这个范例是实现CLR存储过程附带参数:
可复制代码:
SqlConnection connection = new SqlConnection("Context connection=true"); connection.Open(); SqlCommand command = new SqlCommand(); command.Connection = connection; string sql = "SELECT [Fruit_nbr],[FruitKind_nbr],[FruitName] FROM [dbo].[Fruit] WHERE [FruitName] LIKE @FruitName"; command.CommandText = sql; SqlParameter param = new SqlParameter("@FruitName", SqlDbType.NVarChar); param.Value = name; command.Parameters.Add(param); try { SqlDataReader reader = command.ExecuteReader(); SqlContext.Pipe.Send(reader); } catch (Exception ex) { throw new Exception(ex.Message); } connection.Close();
View Code
编写CLR存储过程,有点像是在程序中直接写SQL语句一样,不过有细规范与细节不同而已。
Insus.NET觉得CLR存储过程,是一适合一些较稳定与成熟的程序,当布署之后,一般不需要修改的。因为CLR存储程有更新或是升级,需要删除原旧有已经布署好的存储过程以及Assembly,然后才可以重新布署新版本的CLR存储过程。
删除FruitClr assembly相关的存储过程:
再删除Assembly:
当全部Drop完之后,再参考昨天的CLR存储过程SQL布署方法,重新布署......
下面演示执行新添加的CLR存储过程: