SQLServer 表值函数与标量值函数 定义方式与调用区别
写sql存储过程经常需要调用一些函数来使处理过程更加合理,也可以使函数复用性更强,不过在写sql函数的时候可能会发现,有些函数是在表值函数下写的有些是在标量值下写的,区别是表值函数只能返回一个表,标量值函数可以返回基类型。
标量值函数创建:
表值函数创建:
创建一个自定义样式的标量函数:
其中标量值函数调用的时候方式如下:Select dbo.GoosWidth('0003') 注意:函数前边一定要加上所有者:dbo
表值函数调用方法如下:Select * From GetAllGoods() 表值函数调用的时候不用加入。
标量值函数创建:
Create Function [dbo].[GoosWidth]
(
@GoodsCode varchar(20)
)
Returns float
Begin
Declare @Value float
Select @Value = GoodsWidth From Master_Goods Where GoodsCode = @GoodsCode
Return(@Value)
End
表值函数创建:
Create Function [dbo].[GetAllGoods]
()
Returns Table
As
Return(Select * From [Master_Goods])
创建一个自定义样式的标量函数:
Create Function [dbo].[GetMyStyleDate](@Date DateTime)
Returns nvarchar(20)
Begin
Declare @ReturnValue nvarchar(20)
Set @ReturnValue = '今天是' + convert(nvarchar(4),datepart(year,@Date)) + '年'+ convert(nvarchar(2),datepart(month,@Date)) + '月'+ convert(nvarchar(2),datepart(day,@Date)) + '日'
return @ReturnValue
End
其中标量值函数调用的时候方式如下:Select dbo.GoosWidth('0003') 注意:函数前边一定要加上所有者:dbo
表值函数调用方法如下:Select * From GetAllGoods() 表值函数调用的时候不用加入。
上一篇:mssql时间不交叉
下一篇:coolite中的TabPanel做点击事件
全部评论:
申明:本站部分文章来自网络,由于各种原因对文章的来源无从考究,如果您是“
SQLServer 表值函数与标量值函数 定义方式与调用区别
”的原作者,若侵犯您的版权,请与我联系!在此请您原谅我的幼稚和无知!联系方法:email:ahuinan@21cn.com QQ:106494262
感谢以下网友对网站提出的建议:
1、感谢“蓝树叶kiss”网友发现一个评论漏洞。(2009-2-28)
2、感谢“陈臣”对程序优化和seo方面的建议。(2009-3-18)
感谢以下网友对网站提出的建议:
1、感谢“蓝树叶kiss”网友发现一个评论漏洞。(2009-2-28)
2、感谢“陈臣”对程序优化和seo方面的建议。(2009-3-18)
文章档案
- 作者:佚名
- 来源:转载
- 日期:2010-6-25 17:03:00
- 点击:180
网友投票(您觉得这篇文章怎样?)
请稍侯......
请稍侯......
文章阅读排行
随便看看
最新评论
- 不錯的東東,
打包demoupload.asp,js部分尾多了一個逗號
有空多交流:QQ 37787553 - 不錯的東東,
打包demoupload.asp,js部分尾多了一個逗號
有空多交流:QQ 37787553 - 站长 好!
- 网站不错<br>不知道URl是用什么生成的?
- update A
set A.OriginSalary=A.OriginSalary+B.AddSalary
from dbo.OriginSalary as A left join dbo.AddSalary as B on A.O_ID=B.O_ID - update A
set A.OriginSalary=A.OriginSalary+B.AddSalary
from dbo.OriginSalary as A left join dbo.AddSalary as B on A.O_ID=B.O_ID - 例子举得不好,为什么不直接用update解决呢?
update set A.OriginSalary=A.OriginSalary+B.AddSalary
from dbo.OriginSalary as A left join dbo.AddSalary as B on A.O_ID=B.O_ID - 例子举得不好,为什么不直接用update解决呢?
update set A.OriginSalary=A.OriginSalary+B.AddSalary
from dbo.OriginSalary as A left join dbo.AddSalary as B on A.O_ID=B.O_ID - 恭喜站长改进 支持
- 改版了? 牛叉
- 网站不错^-^ 多多向站长学习
- 212
- 啊 是