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

相关推荐

  • Spring事务传播机制是什么

    技术Spring事务传播机制是什么这篇文章将为大家详细讲解有关Spring事务传播机制是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。传播性行为分为以下几种PROPA

    攻略 2021年12月2日
  • 彳怎么读,“彳”“亍”这俩字念什么啊

    技术彳怎么读,“彳”“亍”这俩字念什么啊拼音:chì, 笔顺:332 五笔编码:ttth 【动】(象形彳怎么读。小篆字字形象“行”,象纵横相交的十字路。“彳”是汉字部首之一,习惯上称为双人旁。从“彳”的字多与行走、行为和

    生活 2021年10月21日
  • Java并发之同步器设计的方法是什么

    技术Java并发之同步器设计的方法是什么本篇内容介绍了“Java并发之同步器设计的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅

    攻略 2021年11月1日
  • Collection集合-List-Set

    技术Collection集合-List-Set Collection集合-List-Set两大体系1.Collection集合-List-Set2.Map集合核心1.ArrayList 2.HashMa

    礼包 2021年12月7日
  • 退烧按摩手法图解法,小儿发热推拿方法有哪些

    技术退烧按摩手法图解法,小儿发热推拿方法有哪些小儿发烧推拿手法有什么小儿发热是指小儿体温超过正常范围,可见于多种急、慢性疾病过程中退烧按摩手法图解法。根据小儿发热病因可将其分为外感发热、肺胃实热和阴虚内热,临床可采用按摩

    生活 2021年10月22日
  • Java并发编程相关概念及注意事项是什么

    技术Java并发编程相关概念及注意事项是什么Java并发编程相关概念及注意事项是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。相应的概念

    攻略 2021年10月23日