什么是基于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)

相关推荐

  • Java锁的升级策略是什么

    技术Java锁的升级策略是什么本篇内容主要讲解“Java锁的升级策略是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java锁的升级策略是什么”吧!这三种锁是指锁的状态,

    攻略 2021年11月19日
  • 如何提高pip安装速度

    技术如何提高pip安装速度这篇文章主要介绍了如何提高pip安装速度,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 pip 安装普通方法:pip insta

    攻略 2021年11月25日
  • Rhel7_Oracle11g_rac安装方法是什么

    技术Rhel7_Oracle11g_rac安装方法是什么这篇文章主要讲解了“Rhel7_Oracle11g_rac安装方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学

    攻略 2021年11月4日
  • 如何使用JavaScript定义自己的ajax函数

    技术如何使用JavaScript定义自己的ajax函数这篇文章将为大家详细讲解有关如何使用JavaScript定义自己的ajax函数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。由于用

    攻略 2021年11月24日
  • 怎么定时清理linux某些文件

    技术怎么定时清理linux某些文件这篇文章主要讲解了“怎么定时清理linux某些文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么定时清理linux某些文件”吧!方法

    攻略 2021年11月30日
  • 调整查询代价的数据库PostgreSQL怎么用

    技术调整查询代价的数据库PostgreSQL怎么用这篇文章将为大家详细讲解有关调整查询代价的数据库PostgreSQL怎么用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

    攻略 2021年12月1日