广告
返回顶部
首页 > 资讯 > 精选 >基于SQL2005的CLR存储过程是怎样的
  • 492
分享到

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

2023-06-17 21:06:04 492人浏览 安东尼
摘要

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

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

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

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

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

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

通过 .NET Framework 库中提供的功能,可以访问数千个预生成的类和例程。可以很容易从任何存储过程、触发器或用户定义函数进行访问。基类库包括的类提供用于字符串操作、高级数学运算、文件访问、加密等的功能。

对于几乎或根本不需要过程逻辑的数据访问,还是使用 Transact-SQL。对于具有复杂逻辑的CPU密集型函数和过程最好还是使用托管代码。

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

我们打开Visual Studio 2005,在对应数据库栏目下面有个SQL Server项目,新建立一个项目,命名为StoredStu,确定过后会显示一个数据库连接对话框,数据库连接好后,我们在数据库中有如下两个表,如下:

基于SQL2005的CLR存储过程是怎样的
StuInfo(学生信息表)

基于SQL2005的CLR存储过程是怎样的
Nation(民族表)

新建立一个文件,选择“存储过程”的选项,命名为StoredStu,在文件中写入以下的代码:

using System;  using System.Data;  using System.Data.SqlClient;  using System.Data.SqlTypes;  using Microsoft.SqlServer.Server;  public partial class StoredProcedures  {      [Microsoft.SqlServer.Server.SqlProcedure]      public static void StoredStu()      {          // 在此处放置代码          SqlPipe sp = SqlContext.Pipe;          string sql = "Select * from StuInfo";          using (SqlConnection conn = new SqlConnection("context connection=true"))          {              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存储过程了。

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

--结束END--

本文标题: 基于SQL2005的CLR存储过程是怎样的

本文链接: https://www.lsjlt.com/news/293415.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于SQL2005的CLR存储过程是怎样的
    基于SQL2005的CLR存储过程是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在 SQL Server 2005 中,可以在SQL Server实例中...
    99+
    2023-06-17
  • 创建CLR存储过程是怎样的
    今天给大家介绍一下创建CLR存储过程是怎样的。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。下面叙述了创建CLR存储过程,从理论到实践,笔者把代码做了清晰地解释...
    99+
    2023-06-17
  • Oracle存储过程是怎样的
    这篇文章主要介绍“Oracle存储过程是怎样的”,在日常操作中,相信很多人在Oracle存储过程是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle存储过程是怎样的”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
  • LINQ存储过程是怎样的
    这篇文章主要介绍“LINQ存储过程是怎样的”,在日常操作中,相信很多人在LINQ存储过程是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”LINQ存储过程是怎样的”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • mysql存储过程是怎么样的
    mysql存储过程是怎么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。存储过程内绑定变量delimiter //drop p...
    99+
    2022-10-19
  • LINQ to SQL存储过程是怎样的
    这篇文章主要讲解了“LINQ to SQL存储过程是怎样的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“LINQ to SQL存储过程是怎样的”吧!在我们编写程序中,往往需要一些存储过程,L...
    99+
    2023-06-17
  • MySQL存储过程的导出是怎样的
    这期内容当中小编将会给大家带来有关MySQL存储过程的导出是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 MySQL表结构数据等已经...
    99+
    2022-10-19
  • mysql存储过程具体是怎么样的
    本文主要给大家简单讲讲mysql存储过程具体是怎么样的,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望mysql存储过程具体是怎么样的这篇文章可以给大家带来一...
    99+
    2022-10-18
  • 存储mysql函数的过程是怎么样的
    本文主要给大家介绍存储mysql函数的过程是怎么样的,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下存储mysql函数的过程是怎么样的吧。这个参数是设...
    99+
    2022-10-18
  • 基于mybatis的java代码生成存储过程
     问题:   项目中目前使用mybatis操作数据库,使用插件(mybatis-generator)自动生成代码,对于增改查,使用存储过程实现了一版本,方便使用。         insert代码生成器用法: insert_code_g...
    99+
    2020-03-08
    基于mybatis的java代码生成存储过程
  • mysql linux环境编译存储过程是怎样的
    mysql linux环境编译存储过程是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。   &...
    99+
    2022-10-19
  • Hive方便地实现存储过程是怎样的
    Hive方便地实现存储过程是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。第一种是 HPL/SQL。这种方式目前还不完善,比如游标使用限制多,很多功能无法实现,对变量...
    99+
    2023-06-03
  • 关于MySQL的存储过程与存储函数
    目录初识存储过程存储过程语法存储过程调用存储函数的使用语法函数的调用对比存储函数和存储过程初识存储过程 理解:含义: 存储过程(Stored Procedure)是在大型数据库系统中...
    99+
    2023-05-19
    MySQL存储过程 MySQL存储函数
  • SAP 基于采购订单的MIRO校验过程是怎样的
    SAP 基于采购订单的MIRO校验过程是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、介绍发票校验是物料管理(MM)系统的一部分。它提供物料管理部分和财务会计, ...
    99+
    2023-06-05
  • SQL Server数据库中的存储过程是怎么样的
    SQL Server数据库中的存储过程是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是存储过程如果你接触过其他的编程语言,那么就...
    99+
    2022-10-19
  • MySQL定时任务与存储过程是怎么样的
    MySQL定时任务与存储过程是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 shell 定时任务:/us...
    99+
    2022-10-19
  • MySQL基础中逻辑架构图解和InnoDB存储引擎的过程是怎样的
    MySQL基础中逻辑架构图解和InnoDB存储引擎的过程是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、MySQL逻...
    99+
    2022-10-18
  • SQL Server中存储过程的基础是什么
    SQL Server中存储过程的基础是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。可以创建一个过程供永久使用,或在一个会话中临时使用...
    99+
    2022-10-18
  • MySQL 存储过程的基本用法
    MySQL 存储过程是一组预定义的 SQL 语句集合,它们可以被调用并执行。存储过程可以接受参数并返回结果,可以在数据库中存储和重复...
    99+
    2023-09-12
    MySQL
  • oracle存储过程的基本语法
    本篇内容介绍了“oracle存储过程的基本语法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! orac...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作