SQL Server CLR全功略之一---CLR介绍和配置

   Microsoft SQL Server 现在具备与 Microsoft Windows .NET Framework 的公共语言运行时 (CLR) 组件集成的功能。CLR 为托管代码提供服务,例如跨语言集成、代码访问安全性、对象生存期管理以及调试和分析支持。对于 SQL Server 用户和应用程序开发人员来说,CLR 集成意味着您现在可以使用任何 .NET Framework 语言(包括 Microsoft Visual Basic .NET 和 Microsoft Visual C#)编写存储过程、触发器、用户定义类型、用户定义函数(标量函数和表值函数)以及用户定义的聚合函数。 下面列出了这一集成的其中一些主要优点:

  •  更好的编程模型。
  •  改进了安全和安全性。
  •  能够定义数据类型和聚合函数。
  •  通过标准化环境简化了开发。
  •  具备改善性能和可扩展性的潜力。

既然CLR这么灵活,那么我们如何在T-SQL和CLR之间做出选择呢?一般情况下,我们当以T-SQL为主,在下面几种情况下,应该考虑使用CLR: SQL中涉及大量的逻辑判断和逻辑运算。比如需要在数据库级别自定义加密算法,解密算法等。 T-SQL无法处理需求。比如需要在SQL中进行正规表达式的判断等。 逻辑判断过于复杂,需要使用大量游标进行处理。这种情况一般要进行测试,因为CLR不一定比游标快,关键是看你怎么写。

 

下面介绍一下如何开启CLR和两种创建CLR的方法。关于如何在VS中编写CLR程序,请看后续章节。 开启CLR。 在SQL Server2005/2008里面,CLR默认是关闭的。可以使用如下SQL语句开启CLR。 sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'clr enabled', 1; GO RECONFIGURE; GO

 

创建CLR。 方法一:使用DLL文件进行创建 CREATE ASSEMBLY AssemblyName from ‘DLLPath’ 例如:CREATE ASSEMBLY AssemblyName from ‘c:/hello.dll’

方法二:使用文件16进制流进行创建 CREATE ASSEMBLY AssemblyName from 文件十六进制流 例如:CREATE ASSEMBLY AssemblyName from 0x123344…… 其中0x12334……是文件c:/hello.dll的十六进制流。可以使用UltraEdit等编辑器把相关dll文件的十六进制流copy出来。

相比较,方法一简单,属于外部引用,通过创建就可以知道是哪个文件。但是dll文件路径必须可以被SQLServer所访问,且部署时dll要随SQLServer变化而变化。 方法二是把流写进SQLServer中,从一定程度上屏蔽了代码。如果此dll不大的话,推荐使用方法二来创建CLR。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql select 子查询_SELECT中常用的子查询操作

MySQL中的子查询 是在MySQL中经常使用到的一个操作,不仅仅是用在DQL语句中,在DDL语句、DML语句中也都会常用到子查询。 子查询的定义: 子查询是将一个查询语句嵌套在另一个查询语句中; 在特定情况下,一个查询语句的条件需要另一个查询语句来获取,内层查询(inner query)语…

视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

说好的给园子里的朋友们录制与《ASP.NET MVC 使用 Petapoco 微型ORM框架NpgSql驱动连接 PostgreSQL数据库》 这篇博客相对应的视频,由于一个月一来没有时间录制,今天我兑现了给朋友们的承诺。。 本次视频教程的目录为 视频、代码、资料,其中视…

ARM中各始终之间的关系,FCLK HCLK PCLK的关系

ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3); ChangeClockDivider(key, 12); 1)FLCK、HCLK和PCLK的关系 S3C2440有三个时钟FLCK、HCLK和PCLK s3c2440官方手册上说P7-8写到: FCLK is used by ARM920T…

CSS垂直居中总结

原文:CSS垂直居中总结工作中遇到垂直居中问题&#xff0c;特此总结了一下几种方式与大家分享。本文讨论的垂直居中仅支持IE8 1、使用绝对定位垂直居中 <div class"container"><!--<div class"floater"></div>--><div class&quo…

mysql添加表字段脚本_mysql数据库修改字段及新增字段脚本

1.修改字段的长度ALTER TABLE MODIFY COLUMN 字段名 数据类型(修改后的长度)例句&#xff1a;ALTER TABLE test_table MODIFY COLUMN id INT(20)2.修改字段的名称alter table change 。例句&#xff1a;ALTER TABLE test_table CHANGE attence_name NAME VARCHAR(20)3.新增字…

java transient简单介绍

我们都知道一个对象仅仅要实现了Serilizable接口&#xff0c;这个对象就能够被序列化&#xff0c;java的这样的序列化模式为开发人员提供了非常多便利&#xff0c;我们能够不必关系详细序列化的过程&#xff0c;仅仅要这个类实现了Serilizable接口&#xff0c;这个的全部属性和…

struct和typedef struct区别

分三块来讲述&#xff1a;   1 首先&#xff1a;//注意在C和C里不同     在C中定义一个结构体类型要用typedef: typedef struct Student{int a;}Stu; 于是在声明变量的时候就可&#xff1a;Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)     这里…

单元测试代码:SpringTest+JUnit

2019独角兽企业重金招聘Python工程师标准>>> /*** JUnit单元测试父类&#xff0c;配置了Spring的基础环境。 <br/>* 可以作为Controller、Service、Dao单元测试的父类。* * author leiwenfansunion.cn*/ public class JUnitTestBase {public static XmlWebApp…

mysql类 php100_php mysql 类

1 <?php2 /**3 * MySQL 数据库操作工具类, 方便数据库操作.4 * 示例见底部注释.5 * author: fuck me every day6 */7 class Mysql{8 var $conn;9 var $query_list array();10 public $query_count 0;1112 public function __construct($c){13 if(!isset($c[port])){14 $c…

SQL Server 索引和表体系结构(三)

SQL Server 索引和表体系结构&#xff08;三&#xff09; 原文:SQL Server 索引和表体系结构&#xff08;三&#xff09;包含列索引 概述 包含列索引也是非聚集索引&#xff0c;索引结构跟聚集索引结构是一样&#xff0c;有一点不同的地方就是包含列索引的非键列只存储在叶子节…

简单了解线程和进程、多进程和多线程、并发和并行的区别

一&#xff1a;线程与进程 1.概念 线程&#xff1a;是程序执行流的最小单元&#xff0c;是系统独立调度和分配CPU&#xff08;独立运行&#xff09;的基本单位。 进程&#xff1a;是资源分配的基本单位。一个进程包括多个线程。 2.区别&#xff1a; 1.线程与资源分配无关&…

jdbc mysql demo_JDBC_demo:java连接mysql过程

1.任何数据库驱动程序都提供对java.sql.Driver接口的驱动类&#xff0c;mysql-connector-java-5.1.39-bin.jar中Driver&#xff1a;packagecom.mysql.jdbc;importjava.sql.DriverManager;importjava.sql.SQLException;public class Driver extendsNonRegisteringDriverimplemen…

Java中发邮件的6种方法

2019独角兽企业重金招聘Python工程师标准>>> 1.官方标准JavaMail Sun&#xff08;Oracle&#xff09;官方标准&#xff0c;功能强大&#xff0c;用起来比较繁琐。 官方资料&#xff1a;http://www.oracle.com/technetwork/java/javamail/index.html 2.第三方实现…

查询字符串某个字符的个数

select len(05011045)-len(replace(05011045,0,))转载于:https://www.cnblogs.com/zwc-blog/p/3787888.html

假定Csomething是一个类,执行下面这些语句后,内存里创建了几个Csomething对象

假定Csomething是一个类&#xff0c;执行下面这些语句后&#xff0c;内存里创建了几个Csomething对象 Csomething a(); Csomething b(2); Csomething c[3]; Csomething &ra b; Csomething d b; Csomething *pA c; Csomething *p new Csomething(4); Csomething a();/…

用mongo实现mysql视图_浅谈 MongoDB 的视图

2018 年 9 月 18 日&#xff0c;由 Robert Gravelle 撰写在关系数据库中&#xff0c;视图是由查询定义的可搜索数据子集。视图有时被称为“虚拟表”&#xff0c;因为它们不存储数据&#xff0c;但可以像表一样被查询。MongoDB 最近在版本 3.4 中引入了视图。在今天的文章中&…

将DataTable 数据插入 SQL SERVER 数据库

原文:将DataTable 数据插入 SQL SERVER 数据库 以下提供3中方式将DataTable中的数据插入到SQL SERVER 数据库&#xff1a;一&#xff1a;使用sqlcommand.executenonquery()方法插入 foreach (DataRow datarow in datatable.Rows) { string sql "INSERT INTO [Table_1] ([…

如何在WinForm中发送HTTP请求

Winform窗体中发送HTTP请求手工发送HTTP请求主要是调用 System.Net的HttpWebResponse方法手工发送HTTP的GET请 求: 1 string strURL "http://localhost/Play/CH1/Service1.asmx/doSearch?keyword";2 strURL this.textBox1.Text;3 System.Net.HttpWebRequest reques…

mysql两列取小_mysql – 我想获取两列特定列之间的列值

如果我理解正确,我认为你不能用一个查询来做到这一点.您可以尝试使用以下内容.添加了对代码的评论.SET schema database_name_here; -- Database nameSET table table1; -- Table nameSET startColumn column_start;SET endColumn column_end;-- First get the position of…

struts2.1.6教程二、struts.xml配置及例程

1.配置文件的优先级 在struts2中一些配置&#xff08;比如常量&#xff09;可以同时在struts-default.xml&#xff08;只读性&#xff09;&#xff0c;strtus-plguin.xml&#xff08;只读性&#xff09;&#xff0c;struts.xml&#xff0c;struts.properties和web.xml文件中配置…