什么是基于SQL2005的CLR存储过程

技术基于SQL2005的CLR存储过程是怎样的基于SQL2005的CLR存储过程是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在 S

基于SQL2005的CLR存储过程是怎样的,很多新手都不是很清楚。为了帮助大家解决这个问题,下面小编就给大家详细讲解一下。需要的人可以从中学习,希望你能有所收获。

在SQL Server 2005中,可以使用以下方法在SQL Server实例中创建数据库对象:基于Microsoft创建的程序集。NET框架公共语言运行库(CLR)是通过编程方法创建的。可以利用CLR提供的许多编程模型的数据库对象包括触发器、存储过程、函数、聚合函数和类型。

虽然Transact-SQL是专门为数据库中的直接数据访问和操作而设计的,但它没有提供编程结构来使数据操作和计算更容易。例如,Transact-SQL不支持数组、集合、for-each循环、位移位或类。

CLR存储过程提供面向对象的功能,如封装、继承和多态性。现在,相关代码可以很容易地组织在类和名称空间中。当使用大量服务器代码时,更容易组织和维护代码,一些数据库功能可以通过使用托管代码来实现。

对于计算和复杂的执行逻辑,基于CLR的托管代码比Transact-SQL更适合。托管代码的一个优点是类型安全,它完全支持许多复杂的任务,包括字符串处理和正则表达式。

中提供的函数可以访问成千上万个预先生成的类和例程。NET框架库。它可以从任何存储过程、触发器或用户定义的函数中轻松访问。基类库中包含的类提供了字符串运算、高级数学运算、文件访问、加密等功能。

Transact-SQL仍然用于需要很少或不需要过程逻辑的数据访问。对于CPU密集型函数和逻辑复杂的过程,最好使用托管代码。

让我们看看如何在Visual Studio 2005中基于SQL Server 2005创建CLR存储过程:

我们打开Visual Studio 2005,在对应的数据库列下有一个SQL Server项目,将创建一个名为StoredStu的新项目。确认后,将显示数据库连接对话框。数据库连接后,数据库中有以下两个表,如下所示:

基于SQL2005的CLR存储过程是怎样的

学生信息表

基于SQL2005的CLR存储过程是怎样的

国家(国家表)

创建一个新文件,选择“存储过程”选项,将其命名为StoredStu,并在文件中编写以下代码:

使用系统;使用System。数据;使用System。Data . SqlClient使用System。Data . SqlTypes使用Microsoft。服务器;publipartialclasstoredprocesses {[Microsoft . SQL server . server . sqlprocedure]Publisticvoidstoredtu(){//放置代码SqlPipesp=SqlContext。管道;stringsql=' Select * fromStuInfo ';使用(SqlConnectionconn=newSqlConnection(' context connection=true '){ 0

       conn.Open();              SqlCommand cmd = new SqlCommand();              cmd.CommandType = CommandType.Text;              cmd.Connection = conn;              cmd.CommandText = sql;              SqlDataReader rdr = cmd.ExecuteReader();              sp.Send(rdr);          }      }      [SqlProcedure]      public static void GetStuInfo(string strNationCode)      {          string sql = "select Stu.StudentName, Stu.StudentNo, Stu.StudentUniversity,Na.NationName from StuInfo Stu inner join Nation Na on Stu.NationCode = Na.NationCode  where Stu.NationCode = '" + @strNationCode + "'";          using (SqlConnection conn = new SqlConnection("context connection=true"))          {              conn.Open();              SqlPipe sp = SqlContext.Pipe;              SqlCommand cmd = new SqlCommand();              cmd.CommandType = CommandType.Text;              cmd.Connection = conn;              cmd.CommandText = sql;              SqlParameter paramstrNationCode = new SqlParameter("@strNationCode", SqlDbType.VarChar, 11);              paramstrNationCode.Direction = ParameterDirection.Input;              paramstrNationCode.Value = strNationCode;              cmd.Parameters.Add(paramstrNationCode);              SqlDataReader rdr = cmd.ExecuteReader();              sp.Send(rdr);          }      }  };

现在我们先对其进行编译,在“生成”菜单中选择“生成解决方案”,当编译完工程后,就需要为其进行部署了。同样选择“生成”菜单中的“部署解决方案”, 这样就会自动将写好的存储过程部署到 SQL Server 2005 中去。

为了确保SQL可以执行托管代码,我们还需要在SQL Server 2005中,执行下面的语句:

EXEC sp_configure "clr enabled", 1;   RECONFIGURE WITH OVERRIDE;   GO

执行显示的结果如下:

“配置选项'clr enabled' 已从0 更改为1。请运行RECONFIGURE 语句进行安装。”

这样就可以创建好CLR存储过程了。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/152036.html

(0)

相关推荐

  • 在调用HttpRequest.GetBufferlessInputStream之后不支持此方法或属性。怎么办

    技术在调用HttpRequest.GetBufferlessInputStream之后不支持此方法或属性。怎么办今天就跟大家聊聊有关在调用HttpRequest.GetBufferlessInputStream之后不支持

    攻略 2021年10月20日
  • 如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式

    技术如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式这篇文章给大家分享的是有关如何使用Mybatis注解方式完成输入参数为list的SQL语句拼接方式的内容。小编觉得挺实用的,因此分享给大家做个参

    攻略 2021年11月30日
  • 学习笔记 2021.12.9cont

    技术学习笔记 2021.12.9cont 学习笔记 2021.12.9cont2021.12.9
    聚合函数
    常见的聚合函数
    具体的count的使用场景的比较(默认具体字段没有非空的)。这里涉及到更多底层

    礼包 2021年12月10日
  • 美国服务器提供的功能和优势

    技术美国服务器提供的功能和优势美国服务器相比其他地区的海外服务器拥有多种优势,包括安全性,速度和可靠性。美国服务器支持用户完全控制权限,并保护您的数据免受未经授权的访问。美国服务器还允许您轻松升级美配置及其服务。如有必要

    礼包 2021年12月16日
  • 基于AWS学习的10个Linux命令分别是什么

    技术基于AWS学习的10个Linux命令分别是什么基于AWS学习的10个Linux命令分别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在AWS上执行

    攻略 2021年10月21日
  • springboot会自动更新nacos配置吗(nacos与springboot版本对应)

    技术springboot使用nacos的示例分析springboot使用nacos的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、pom.xml

    攻略 2021年12月20日