zoukankan      html  css  js  c++  java
  • 简单创建与布署CLR存储过程

    今天的博文是学习CLR存储过程,一个简单的例子,学会怎样创建,编译,布署在SQL中。CLR能做一些T-SQL无法做的事情,很多情况之后,它比T-SQL快。

    打开VS2013,创建一个新专案,参考下面5个步骤:

    如果你想写好的CLR存储过程布署在SQL2008上,上面标记2选择.NET Framework3.5。

    创建一个新item:



    创建一个存储过程的类别:

    点击标记12的铵钮之后,在VS中将产生一个空白的存储过程类别:

    接下来,我们就可以在标记13处写存储过程了。




    下面是可复制代码:

    SqlConnection connection = new SqlConnection("context connection=true");
    connection.Open();
    string sql = "SELECT [Fruit_nbr],[FruitKind_nbr], [FruitName] FROM [dbo].[Fruit]";
    SqlCommand command = new SqlCommand(sql, connection);
    SqlDataReader reader = command.ExecuteReader();
    
    SqlContext.Pipe.Send(reader);
    View Code


    BUILD Soluton:



    Build成功,可以看到output信息:

    下面是对SQL的操作,打开Microsoft SQL Server Management Studio 2014,找到对应的数据库,然后按标记1至标记4进行操作,标记3是按mouse右键才能显示标记4。

     
    在Assembly对话窗口中,在标记1中,找到刚才编译好的DLL,然后点标记3"OK"铵钮即可。


    在数据库的中,可看到添加好的Assembly:



    OK,最后一个步骤布署,创建存储过程:

    成功之后,我们会到一个带一把锁的存储过程:



    大功告成!!!
    运执行一下我们创建好的CLR存储过程EXECUTE [dbo].[GetFruitAll],它没有预期结果,出现一个异常:
    Execution of user code in the .NET Framework is disabled. Enable "clr enabled" configuration option.



    此时,我们需要

    Enabling CLR Integration 

    sp_configure 'clr enabled', 1
    GO
    RECONFIGURE
    GO
    View Code


    再次执行CLR存储过程,得到我们想要的结果:

  • 相关阅读:
    hdu--2852--树状数组
    hdu--2848--未解决
    二进制与十进制之间蛮好的转换方式
    hdu--2846--字典树<怪我思维不够跳跃>
    hdu--2845--dp
    hdu--2844--多重背包
    hdu--1789--贪心||优先队列
    hdu--1978--记忆化深度搜索||递推
    hdu--2830--任意交换列的矩阵
    hdu--1506--矩阵求和<stack>
  • 原文地址:https://www.cnblogs.com/insus/p/4371762.html
Copyright © 2011-2022 走看看