编译和部署CLR程序集

SQL Server CLR集成,让我们可以用C#编程,实现我们熟知的存储过程、函数及触发器等,然后部署到SQL Server。部署完成后,又可以用我们熟知的方式来调用。SQL Server CLR是T-SQL的一个很好的补充,因为它提供编程构造使得数据操作和计算更加容易。对于计算和复杂的执行逻辑,CLR托管代码比 T-SQL 更适合,它全面支持许多复杂的任务,包括字符串处理和正则表达式。通过 .NET Framework 库中提供的功能,可以访问数千个预生成的类和例程。可以很容易从任何存储过程、触发器或用户定义函数进行访问。我们有两种方式来编译和部署CLR程序集。

默认情况下,SQL ServerCLR集成功能是禁用的,因此,在讲编译和部署之前,先来启用CLR集成:

编译和部署CLR程序集_第1张图片

如果要禁用,只需将其设置为0。禁用时,SQL Server将停止执行所有CLR例程并卸载所有应用程序域。

 

下面看看如何编译和部署CLR程序集,首先是官方推荐的方式:

  1. 编写一个“Hello World”存储过程
    编译和部署CLR程序集_第2张图片
  2. 编译该“Hello World”存储过程
    添加.NET Framework目录,并使用csc /target将helloworld.cs编译生成一个dll。
    编译和部署CLR程序集_第3张图片
  3. 在SQL Server中加载和运行“Hello World”存储过程
    编译和部署CLR程序集_第4张图片

第二种方式是通过VS编写和发布:

  1. 新建SQL Server项目
    打开VS2012,从模板里选择SQL Server,将项目名称改为pCLR,并选择位置,然后点击确定。
    编译和部署CLR程序集_第5张图片
    这时,我们可以在SQL Server对象资源管理器里看到如下图所示的数据库pCLR。
    编译和部署CLR程序集_第6张图片
    这时,我们可以在SQL Server对象资源管理器里看到如下图所示的数据库pCLR。这时,我们可以在SQL Server对象资源管理器里看到如下图所示的数据库pCLR。这时,我们可以在SQL Server对象资源管理器里看到如下图所示的数据库pCLR。这时,我们可以在SQL Server对象资源管理器里看到如下图所示的数据库pCLR。
  2. 导入目标数据库
    因项目自带的数据库不是我们想要的,因为实际应用中我们想把CRL部署到生产数据库。下面以Local的TESTDB为例。首先右击项目,选择“导入”,再选择“数据库”。通过编辑连接,连接到TESTDB。最后点击“启动”。
    编译和部署CLR程序集_第7张图片
    最后点击“完成”
    编译和部署CLR程序集_第8张图片
  3. 添加用户自定义函数
    如下图所示“添加新项”
    编译和部署CLR程序集_第9张图片
    默认的code如下图所示:
    编译和部署CLR程序集_第10张图片
    根据需要修改code:
    编译和部署CLR程序集_第11张图片
    默认的code如下图所示
  4. 部署CLR
    右击项目,选择“发布”。如下图所示,进行目标数据库的设置。设置好后,点击“发布”:
    编译和部署CLR程序集_第12张图片
  5. 测试CLR
    编译和部署CLR程序集_第13张图片

以上演示均在VS2012+SQL Server 2012的环境中操作。

你可能感兴趣的:(编译和部署CLR程序集)