第58章SQL Server 创建NET程序Word格式.docx
- 文档编号:14540097
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:17
- 大小:598.26KB
第58章SQL Server 创建NET程序Word格式.docx
《第58章SQL Server 创建NET程序Word格式.docx》由会员分享,可在线阅读,更多相关《第58章SQL Server 创建NET程序Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
图11-2新建数据库引用
图11-2所示为新建数据库引用,在【服务器名】下拉列表框中选择服务器名称,如果存在密码就启用相应的登录项输入用户名及密码;
然后启用【选择或输入一个数据库名】单选框,并在其下拉列表框中选择需要用到的数据库。
另外,用户还可以启用【附加一个数据库文件】来附加相应的数据库,这里选择了“BookDateBase”数据库。
如果用户想要知道,是否能够与数据库连接成功,那么可以单击图11-2中的【测试连接】按钮,如果成功则弹出对话框提示成功信息,如图11-3所示。
图11-3测试连接图11-4资源管理器
接下来单击【确定】按钮完成对SQLSERVER项目的创建,完整的项目可在【解决方案资源管理器】中看到,如图11-4所示。
在【解决方案资源管理器】中可以看到一个名为TestScripts的文件形式的项目,用户可以通过它来创建相应的内容。
在该项目中右击鼠标,在弹出的快捷菜单中选择【添加】,其二级菜单中可以看到诸如【用户自定义的函数】、【存储过程】以及【触发器】等项目,如图11-5所示。
图11-5快捷菜单
到此,用户就完成了一个SQLSERVER项目的创建。
接下来就可以通过快捷菜单创建相应的内容,下面的内容将为读者详细介绍。
58.2用户自定义函数
用户可以在.NET平台中使用各种语言创建用户自定义函数,并在SQLServer2008中使用,用户可以像调用T-SQL一样调用这些自定义函数。
同时,自定义函数也给用户很大的自由编码空间,用户自定义函数时有如下三种可定义的方式。
●标量值用户自定义函数这种类型的自定义函数返回单个值,如整形、字符串等;
●表值用户自定义函数这种类型的自定义返回整个表。
●自定义聚合函数这类函数类似于SUM或MAX之类的函数。
在平时使用中自定义聚合函数的几率很小,下面以标量值用户自定义函数以及表值用户自定义函数为例,详细讲解它们的使用方法。
1.标量值用户自定义函数
标量值函数表示该函数的返回类型为单值,如返回一个字符串,一个浮点型或一个整型等。
这种函数通常有0个或多个输入,它们通常以静态类方法实现,因此不必创建类的实例即可调用这些方法,下面来介绍这类函数的创建及编写方法。
首先如图11-5所示的快捷菜单中选择【用户自定义函数】,此时系统弹出【添加选项】对话框,如图11-6所示。
图11-6添加新项
在图11-6所示的对话框中选择【用户自定义函数】,并在【名称】文本框中添加名称,这里将其命名为ShowHello.cs,然后单击【添加】按钮。
之后在VisualStudio.NET2008中显示所创建的内容,如图11-7所示。
图11-7创建用户自定义函数
图11-7中显示了代码编写区和【解决方案资源管理器】对话框,其中用户可以在代码编写区编写相应代码,默认情况下有一个返回值为SqlString的ShowHello方法;
而在【解决方案资源管理器】对话框中显示了已经存在的文件。
将代码编写区域代码更改为如形式:
usingSystem;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Data.SqlTypes;
usingMicrosoft.SqlServer.Server;
publicpartialclassUserDefinedFunctions
{
[Microsoft.SqlServer.Server.SqlFunction]
publicstaticSqlStringShowHellow()
//在此处放置代码
returnnewSqlString("
自定义函数返回结果"
);
}
};
上面代码中的[Microsoft.SqlServer.Server.SqlFunction]为必定部分,在定义每一个方法时都要添加语句,它告诉系统下面定义的函数为SQLSERVER可用函数,如果没有语句则SQLSERVER无法识别函数。
代码中定义了一个静态类型返回值为SqlString的函数ShowHello,那么函数编写完毕后如何使用它呢?
这里定义的方法适用于多种情况,首先用户可以在【解决方案资源管理器】对话框中找到名为Test.sql的文件,双击打开该文件,进入该文件的代码编写界面。
由于前面在创建SQLSERVER项目时,指定了相应的数据库,因此用户可以在这里随便使用SQL语句,执行这些语句的范围就在用户指定的数据库中。
例如在Test.sql中写入下面的语句:
SELECTTOP7Bnum,BnamefromBOOKS
执行该语句后,如图11-8所示。
图11-8查询数据库
从图11-8可以知道,本项目FirstFun作用范围为用户指定的数据库,因此同样可以在该数据库中使用自定义方法。
例如在Test.sql文件中输入下面的内容。
SELECTdbo.showHello()as'
第一列'
执行该语句后,可以得到如图11-9所示的结果。
与SQLSERVER2008中显示结果的样式不同,这里的显示不是以表格形式出现,而是返回结果列名为“第一列”,其中列中内容为自定义函数返回的结果。
图11-9使用自定义函数
除了在Test.sql文件中使用自定义函数外,还可以在SQLSERVER2008中使用。
打开SQLSERVER2008,新建查询,并写入与Test.sql中相同的内容,执行后可以得到如图11-10所示。
的内容。
11-10执行结果
在图11-10中可以看到SQLSERVER2008中以表格形式出现,此时用户还可以再添加新的自定义方法,例如在原有代码中添加如下内容:
publicstaticSqlStringShowText()
第二个自定义返回结果"
在VisualStudio.NET中重新编译后,回到SQLSERVER2008中输入下面的内容:
,
dbo.showText()as‘第二列’
执行上面查询语句后,可以得到如图11-11所示的结果
11-11添加代码后显示结果
使用T-SQL语句同样可以实现上述功能,但使用.NET平台则可以完成更多复杂的且SQLSERVER中无法完成的功能。
比如在事件日志、WMI、性能计数器、高级.NET类或复杂的数学计算等方面使用T-SQL会比较困难,但使用.NET便能轻松解决。
2.表值用户自定义函数
与标量值用户自定义函数不同,表值用户自定义函数返回值为整个表。
在.NET平台中创建表值函数时,必须实现Ienumerable接口,该接口具有极大的灵活性,用户可以使用它返回任何内容给SQLSERVER。
在使用表值函数时涉及到复杂的编程知识,但其原理与标量值用户自定义函数基本相同,这里不在赘述。
58.3存储过程
前面章节曾经详细介绍了存储过程及其创建方式,在.NET平台中同样可以创建用户自定义存储过程,接受或返回用户提供的参数,并在SQLSERVER中使用。
在.NET平台中创建用户自定义存储过程与用户自定义函数相同,都需要将它们发布在程序集中以供SQLSERVER使用,而存储过程具有以下几个较高级的功能:
●CLR存储过程可以有一个返回值。
●CLR存储过程可以有输出参数。
●CLR存储过程可以返回消息给客户程序。
●CLR存储过程可以调用数据定义语言(DDL)和数据操纵语言(DML)语句。
创建用户自定义存储过程与用户自定义函数基本相同,都需要创建一个SQL项目,然后右击项目的TestScripts并在弹出的快捷菜单中选择【添加】|【存储过程】,此时系统弹出如图11-12所示的对话框。
图11-12创建存储过程
在该对话框中选择【存储过程】并在【名称】文本框中添加存储过程名称,这里填写了myST,最后单击【添加】按钮。
创建好的存储过程如图11-13所示。
11-13创建好后的存储过程
存储过程在.NETFramework程序集中作为类的公共静态方法实现,默认情况下创建一个无返回值的静态方法,用户便可以在代码编辑区编写相应的内容,例如下面代码为一个简单的用户自定义存储过程。
publicpartialclassStoredProcedures
[Microsoft.SqlServer.Server.SqlProcedure]
publicstaticvoidmyST(intnumber)
if(number<
=100)
return100;
else
returnnumber-100
在编写代码中一定要注意需要为存储过程添加表征,即SqlProcedurege表示用户自定义存储过程。
代码编写完毕后,编译代码,然后打开SQLSERVER2008新建查询,在查询中写入如下容:
useBookDateBase
go
declare@valueint
exec@value=[dbo].[myST]
@number=1000
select@valueas'
结果'
上述语句的执行结果如图11-14所示。
图11-14使用用户自定义存储过程
上面所述的所有代码都创建在同一个程序集内,那么在每次修改代码时,都需要在VisualStudio.NET中重新编译,即可在相应的数据库中使用。
58.4触发器
触发器也可以由.NET平台创建,触发器用不带返回类型的静态函数表示。
.NET平台的公共语言运行时既支持数据操纵语言(DML)触发器又支持数据定义语言触发器(DDL)。
在创建触发器时可以使用SqlTriggerContext的特殊类来获得INSERTEDTDELETE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第58章 SQL Server 创建NET程序 58 创建 NET 程序