首页 > 下载 > 下载详文:Sql存储过程的函数Functions使用

Sql存储过程的函数Functions使用

发布时间:2012年12月12日 14时58分15秒   属性:程序Web开发 > Microsoft    访问次数:71930
字体: 初始 添加收藏 分享给好友

Sql存储过程中的函数Functions使用

在Sql server 存储过程查询语句脚本编写时,把存储过程保存在数据库中,提供给程序ADO.NET来操作查询,这样能够为数据查询操作大大提高效率,将Sql脚本预编写好等程序需要时调用,存储过程相当于在Sql Server中的一个脚本查询库。在C# 中开发是会定义很多类库,在类库中会编写大量的Public的公共方法、变量、或属性,以备随时需要时调用类中的方法。在Sql 查询语句也可以通过定义函数Function来提供公众Sql查询是调用,在Sql查询脚本中没有C#等语言中有Public公共方法属性,Sql server存储过程中的Funtion本身就是公共的,在同一个数据库下,任何数据表任何条件下需要查询时都可以随时调用Function函数。本文件将介绍通过函数Funtion来查询数据表。下图是本文将要在数据库中完成的操作。

建立数据,在visual studio中建立一个空的WebSite站点程序,然后新建项新建一个Database数据库文件,在站点程序中建立数据库文件后也就是在App_Data文件目录下建立了Database.mdf。然后在Visual studio中的“服务器资源管理器中(在视图菜单中的 服务器资源管理器中)”展开Databases数据库,建立一个Persons数据表,表的列属性由[P_Id] [Name], [Address], [City]组成,可以通过下面的脚本在“新建查询”中完执行即建立了Persons数据表。

SQL 代码  复制
CREATE TABLE [dbo].[Persons](
[P_Id] [int] IDENTITY(1,1) NOT NULL, [Name] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL, [Address] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL, [City] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_Persons] PRIMARY KEY CLUSTERED ( [P_Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) )

在数据库中建立函数Function, 右键”函数”>“新增(N)”>“内联函数(I)” 建立了新的函数文件。

建立完新函数文件后,对其进行修改,在这里编写一个函数判断某个字符是否为空,函数数名为“IsEmpty”,如果为空就返回“未填写!”如果非空则这几返回这个字段的字符。函数Funtion需要动态带入参数。判断传入进来的参数字符长度,当大于1时则是非空直接返回该参数的字符,小于1则返回“未填写!”。详细代码如下。

SQL 代码  复制
ALTER FUNCTION dbo.IsEmpty(@Text VARCHAR(MAX)) RETURNS VARCHAR(MAX) AS BEGIN /* Copyright(C) 遗昕|Weisim3.com 12.12.2012*/ /* Sql 存储过程中的函数Functions使用 */ DECLARE @Txt VARCHAR(MAX) IF DATALENGTH(@Text)> 1 SET @Txt = @Text ELSE SET @Txt = '未填写!' RETURN @Txt END

下面建立查询语句查询Persons表,结合上面定义的IsEmpty来判断Address字段是否为空。右键盘“存储过程”点击“添加新存储过程(P)” 建立PersonsData存储过程。下面是详细代查询代码。

SQL 代码  复制
ALTER PROCEDURE dbo.PersonsData AS /* Copyright(C) 遗昕|Weisim3.com 12.12.2012*/ /* Sql 存储过程中的函数Functions使用 */ SELECT P_Id, [Name], dbo.IsEmpty(Address) AS Address, City FROM Persons RETURN

下对比结合IsEmpty函数查询和直接查询Persons表的显示结果。可以看到查询结果当地条数据Address字段为空时就返回了“未填写!”。

最后在ASP.NET页面中通过SqlDataSource来结合存储过程PersonsData查询(SelectCommand="PersonsData")。让Gridview的DataSourceID绑定SqlDataSource(DataSourceID="SqlDataSource1")。显示效果如下图。

通过Sql还可以定义各种函数用以不同查询需要时调用,从而提高数据查询编写效率。




免费
Sql存储过程的函数Functions使用 (1)
本下载连接不支持第三下载工具打开,请直接点击下载即可
文章版权归属weisim3.com所有,未经书面版权许可同意,不得私自转载(或做修改转载),源文件示例仅供学习使用,更不要出于商业用途或印刷出版发行!否则将追究其相关法律责任,版权联系QQ:729260499。
遺昕 | Weisim3.com 下载许可条款 ( 您必须接受同意才可下载 ) .