SQLServer下的用户自定义函数的语法格式、编写实例以及调用方法
2010-08-16 19:39
393 查看
由于工作缘故,需要解决一个sql自定义函数,后来在网上查了很多才明白了其中的道理,我找到了自定义函数的语法格式,写法和调用方法
语法格式:
CREATE FUNCTION <函数名称>
(
-- 函数的参数(可以多个)
<@param1, sysname, @p1> <data_type_for_param1, , int>,
<@param2, sysname, @p2> <data_type_for_param2, , char>
)
RETURNS
<@表变量名> TABLE
(
-- 返回的虚拟表中的字段 字段名 类型
<Column_1, sysname, c1> <Data_Type_For_Column1, , int>,
<Column_2, sysname, c2> <Data_Type_For_Column2, , int>
)
AS
BEGIN
-- 函数体,里面可以定义一些变量,总之最后返回的应该是个结果集
RETURN
END
GO
写法(工作中的例子):
CREATE FUNCTION getcallbackdata
(@mycallerno varchar(30),
@myid int
)
RETURNS @callbdata TABLE
(
callerarea varchar (10),
status int,
route int,
prefix varchar(20),
pcell int,
prate money,
prov varchar(20) NULL
)
AS
BEGIN
DECLARE @arecode varchar(10),
@status int,
@route int,
@prefix varchar(20),
@pcell int,
@prate money,
@prov varchar(20)
select @arecode=areacode from sd_areaplay
select @status=state from sd_account where pin='@mycallerno'
select @prefix=prefix from sd_platformrouter
select @pcell=feesec,@prate=afterfreefee from sd_payplan
insert into @callbdata values(@arecode,@status,@route,@prefix,@pcell,@prate,@prov);
RETURN
END
GO
调用方法:
select callerarea,status,route,prefix,pcell,prate,prov from t.getcallbackdata('mycallerno',mypid)
语法格式:
CREATE FUNCTION <函数名称>
(
-- 函数的参数(可以多个)
<@param1, sysname, @p1> <data_type_for_param1, , int>,
<@param2, sysname, @p2> <data_type_for_param2, , char>
)
RETURNS
<@表变量名> TABLE
(
-- 返回的虚拟表中的字段 字段名 类型
<Column_1, sysname, c1> <Data_Type_For_Column1, , int>,
<Column_2, sysname, c2> <Data_Type_For_Column2, , int>
)
AS
BEGIN
-- 函数体,里面可以定义一些变量,总之最后返回的应该是个结果集
RETURN
END
GO
写法(工作中的例子):
CREATE FUNCTION getcallbackdata
(@mycallerno varchar(30),
@myid int
)
RETURNS @callbdata TABLE
(
callerarea varchar (10),
status int,
route int,
prefix varchar(20),
pcell int,
prate money,
prov varchar(20) NULL
)
AS
BEGIN
DECLARE @arecode varchar(10),
@status int,
@route int,
@prefix varchar(20),
@pcell int,
@prate money,
@prov varchar(20)
select @arecode=areacode from sd_areaplay
select @status=state from sd_account where pin='@mycallerno'
select @prefix=prefix from sd_platformrouter
select @pcell=feesec,@prate=afterfreefee from sd_payplan
insert into @callbdata values(@arecode,@status,@route,@prefix,@pcell,@prate,@prov);
RETURN
END
GO
调用方法:
select callerarea,status,route,prefix,pcell,prate,prov from t.getcallbackdata('mycallerno',mypid)
相关文章推荐
- SQLServer下的用户自定义函数的语法格式、编写实例以及调用方法
- Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库 自定义日志记录功能,按日记录,很方便 C#常量和字段以及各种方法的语法总结 类型,对象,线程栈,托管堆在运行时的关系,以及clr如何调用静态方法,实例方法,和虚方法 asp.net webapi 自定义身份验证
- oracle 存储过程语法实例以及调用方法
- 关于ASP.NET同页面内【用户控件与父页面】以及【用户控件与用户控件】之间方法调用/传值
- 关于ASP.NET同页面内【用户控件与父页面】以及【用户控件与用户控件】之间方法调用/传值 一点点经验
- 调用存储过程以及用户自定义函数来更新匿名关系数据
- Linux下编写Lua扩展so文件和调用方法实例
- 关于ASP.NET同页面内【用户控件与父页面】以及【用户控件与用户控件】之间方法调用/传值 一点点经验
- 用户控件与父页面以及用户控件与用户控件的方法调用和传值
- php中调用用户自定义函数的方法:call_user_func,call_user_func_array
- 关于ASP.NET同页面内【用户控件与父页面】以及【用户控件与用户控件】之间方法调用
- asp.net后台cs中的JSON格式变量在前台Js中调用方法!(前后台实例!)
- .NET同页面内用户控件与父页面以及控件之间方法调用
- 编写一个程序,其main()调用一个用户定义的函数(以光年值为参数,并返回对应天文单位 的值).该程序按下面的格式要求用户输入光年值
- 关于ASP.NET同页面内【用户控件与父页面】以及【用户控件与用户控件】之间方法调用/传值 一点点经验
- 关于ASP.NET同页面内【用户控件与父页面】以及【用户控件与用户控件】之间方法调用/传值 一点点经验
- 同页面内【用户控件与父页面】以及【用户控件与用户控件】之间方法调用/传值 一点点经验
- 用户选择,调用相应函数的编写方法
- 关于ASP.NET同页面内【用户控件与父页面】以及【用户控件与用户控件】之间方法调用/传值 一点点经验
- .NET同页面内用户控件与父页面以及控件之间方法调用