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

相关推荐

  • postgresql中用户安全配置的示例分析

    技术postgresql中用户安全配置的示例分析小编给大家分享一下postgresql中用户安全配置的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起

    攻略 2021年11月18日
  • iOS代码片段的示例分析

    技术iOS代码片段的示例分析小编给大家分享一下iOS代码片段的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!【1】键盘遮挡的一种解决方

    攻略 2021年10月21日
  • linux 搭载yum私有仓库

    技术linux 搭载yum私有仓库 linux 搭载yum私有仓库yum私有仓库本地版
    @目录yum私有仓库本地版1.下载必须的软件包2.创建软件仓库3.下载对应的软件yum私有仓库本地版插图1)4.初

    礼包 2021年12月17日
  • python文本进度条怎么实现

    技术python文本进度条怎么实现本篇内容介绍了“python文本进度条怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有

    攻略 2021年12月9日
  • Android界面设计基础中控件焦点的步骤是什么

    技术Android界面设计基础中控件焦点的步骤是什么这篇文章给大家介绍Android界面设计基础中控件焦点的步骤是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android设备有多种多样,操纵

    攻略 2021年11月26日
  • RHEL5.1创建本地及FTP的yum源是怎样的

    技术RHEL5.1创建本地及FTP的yum源是怎样的本篇文章给大家分享的是有关RHEL5.1创建本地及FTP的yum源是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小

    攻略 2021年11月17日