长期损害硬盘的六款常用软件
长期损害硬盘的六款常用软件
发布时间:2016-12-26 来源:查字典编辑
摘要:使用SQLServer2005的CLR存储过程SQLServer2005的一大新特性便是整合了.net的CLR。整合了.netCLR的好处在...

使用SQLServer2005的CLR存储过程

SQLServer2005的一大新特性便是整合了.net的CLR。整合了.netCLR的好处在于,可以很方便地使开发者可以使用自己熟悉的.net语言来创建存储过程,触发器,自定义函数等。在本文中,将以C#来创建存储过程。为什么不用T-SQL来创建存储过程呢?因为T-SQL发展到目前,已经很长时间了,在某些场合有其局限性,比如T-SQL不是面向对象的,某些语法过于复杂等。而如果使用面向对象的.NET语言来编写如存储过程等数据对象时,由于.net语言强大的特性,因此能写出更健壮和更优秀的存储过程。注意,通过SQLServer2005用.NET编写的存储过程,都是和用.NET语言编写一般应用的程序一样,都是managedcode。此外,CLR编程语言提供了T-SQL中所没有的丰富构造(例如数组和列表等)。与T-SQL(它是一种解释语言)相比,CLR编程语言之所以具有更好的性能,是因为托管代码是已编译的。对于涉及算术计算、字符串处理、条件逻辑等的操作,托管代码的性能可能要优于T-SQL一个数量级。在本文中,虽然可以用T-SQL来编写存储过程,但为了说明问题,还是以C#来写存储过程。步骤如下:

首先,打开VisualStudio2005beta2,选择c#语言,新建立一个database工程,命名为sqlproject1。此时,VisualStudio2005beta2会询问你,要与什么数据库进行关联。由于我们采用的是pubs这个数据库,因此我们选择机器名是本地机器,设置好sql的验证方式,选择pubs数据库,就可以了。(注意,在SQLServer2005中,pubs和northwind数据库不再是SQLServer2005的自带数据库了,需要到http://go.microsoft.com/fwlink/?LinkId=31995去下载)。接着,在工程建立完毕后,选择新增项目,选择storeprocedure存储过程,并以Authors.cs命名,再按确定,并输入以下代码:

usingSystem;

usingSystem.Data;

usingSystem.Data.Sql;

usingSystem.Data.SqlTypes;

usingMicrosoft.SqlServer.Server;

usingSystem.Data.SqlClient;

publicpartialclassStoredProcedures

{

[Microsoft.SqlServer.Server.SqlProcedure]

publicstaticvoidGetAuthors()

{

SqlPipesp=SqlContext.Pipe;

using(SqlConnectionconn=newSqlConnection("contextconnection=true"))

{

conn.Open();

SqlCommandcmd=newSqlCommand();

cmd.CommandType=CommandType.Text;

cmd.Connection=conn;

cmd.CommandText="SelectDatePart(second,GetDate())"+"Astimestamp,*fromauthors";

SqlDataReaderrdr=cmd.ExecuteReader();

sp.Send(rdr);

}

}

[SqlProcedure]

publicstaticvoidGetTitlesByAuthor(stringauthorID)

{

stringsql="selectT.title,T.price,T.type,"+"T.pubdatefromauthorsA"+

"innerjointitleauthorTAonA.au_id=TA.au_id"+

"innerjointitlesTonTA.title_id=T.title_id"+

"whereA.au_id='"+@authorID+"'";

using(SqlConnectionconn=newSqlConnection("contextconnection=true"))

{

conn.Open();

SqlPipesp=SqlContext.Pipe;

SqlCommandcmd=newSqlCommand();

cmd.CommandType=CommandType.Text;

cmd.Connection=conn;

cmd.CommandText=sql;

SqlParameterparamauthorID=newSqlParameter("@authorID",SqlDbType.VarChar,11);

paramauthorID.Direction=ParameterDirection.Input;

paramauthorID.Value=authorID;

cmd.Parameters.Add(paramauthorID);

SqlDataReaderrdr=cmd.ExecuteReader();

sp.Send(rdr);

}

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新应用技巧学习
热门应用技巧学习
网页设计子分类