不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
MSSQL标量函数、多语句表值函数和内嵌表值函数
编辑:dnawo 日期:2008-07-17
在SQL Server 2000中,用户可以自己定义函数来补充和扩展系统支持的内置函数,用户定义函数分为标量值函数和表值函数。如果 RETURNS 子句指定一种标量数据类型,则函数为标量值函数;如果 RETURNS 子句指定 TABLE,则函数为表值函数。根据函数主体的定义方式,表值函数又可分为内嵌表值函数和多语句表值函数,如果 RETURNS 子句指定的 TABLE 类型带有列及其数据类型,则该函数是多语句表值函数;如果 RETURNS 子句指定的 TABLE 不附带列的列表,则该函数为内嵌表值函数,内嵌表值函数是使用单个 Select 语句定义的表值函数,该语句组成了函数的主体。
1.标量函数
示例:
2.多语句表值函数
示例:
3.内嵌表值函数
示例:
1.标量函数
复制内容到剪贴板
程序代码

Create FUNCTION owner_name.function_name
( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] )
RETURNS scalar_return_data_type
[ WITH < function_option> [ [,] ...n] ]
[ AS ]
BEGIN
function_body
RETURN scalar_expression
END
( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] )
RETURNS scalar_return_data_type
[ WITH < function_option> [ [,] ...n] ]
[ AS ]
BEGIN
function_body
RETURN scalar_expression
END
示例:
复制内容到剪贴板
程序代码

--print dbo.fn_Test(11,14)
create function dbo.fn_Test(@a int,@b int) returns int as
begin
return @a+@b
end
create function dbo.fn_Test(@a int,@b int) returns int as
begin
return @a+@b
end
2.多语句表值函数
复制内容到剪贴板
程序代码

Create FUNCTION owner_name.function_name
( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] )
RETURNS @return_variable TABLE < table_type_definition >
[ WITH < function_option > [ [,] ...n ] ]
[ AS ]
BEGIN
function_body
RETURN
END
( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] )
RETURNS @return_variable TABLE < table_type_definition >
[ WITH < function_option > [ [,] ...n ] ]
[ AS ]
BEGIN
function_body
RETURN
END
示例:
复制内容到剪贴板
程序代码

--select * from dbo.fn_Test(10099)
create function dbo.fn_Test(@id int) returns @users table(id int identity(1,1) primary key,uid int,web varchar(20),url nvarchar(200)) as
begin
insert into @users(uid,web,url) select id,website_name,website from union_user where id<@id
return
end
create function dbo.fn_Test(@id int) returns @users table(id int identity(1,1) primary key,uid int,web varchar(20),url nvarchar(200)) as
begin
insert into @users(uid,web,url) select id,website_name,website from union_user where id<@id
return
end
3.内嵌表值函数
复制内容到剪贴板
程序代码

Create FUNCTION owner_name.function_name
( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] )
RETURNS TABLE
[ WITH < function_option > [ [,] ...n ] ]
[ AS ]
RETURN [ ( ] select-stmt [ ) ]
( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] )
RETURNS TABLE
[ WITH < function_option > [ [,] ...n ] ]
[ AS ]
RETURN [ ( ] select-stmt [ ) ]
示例:
复制内容到剪贴板
程序代码

--select * from dbo.fn_Test()
create function dbo.fn_Test() returns table as
return select top 20 * from union_user
create function dbo.fn_Test() returns table as
return select top 20 * from union_user
评论: 0 | 引用: 0 | 查看次数: 7251
发表评论
请登录后再发表评论!