。谁说的。create function ks() returns @s table (a int) as begin insert @s values(1) return end select * from ks() /* a ----------- 1*/
http://lidup.blog.51cto.com/426277/160904
关键字: sql server, 表值函数Sql server 的表值函数是返回一个Table类型,table类型相当与一张存储在内存中的一张虚拟表。 实现表值函数很简单: 下面是一个不带输入参数的表值函数create function tvpoints() returns table as return ( select * from tb_users ); 这个表值函数数查询所有用户表的数据对于多语句表值函数,在 BEGIN...END 语句块中定义的函数体包含一系列 Transact-SQL 语句,这些语句可生成行并将其插入将返回的表中。以下示例创建了一个表值函数.create function tvpoints() returns @points table (x float, y float) as begin insert @points values(1,2); insert @points values(3,4); return; end查询表值函数跟查询普通表一样 select * from tvpoints() 返回的是一张表带输入参数的表值函数create function tvpoints2(@x AS int,@y as int) returns @points table (x float, y float) as begin insert @points values(@x,@y); return; end本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fredrickhu/archive/2009/09/23/4583130.aspx
....myfunc是自定义的函数
在可使用标量表达式的位置可唤醒调用标量值函数,包括计算列和 CHECK 约束定义。当唤醒调用标量值函数时,至少应使用函数的两部分名称。[database_name.]owner_name.function_name ([argument_expr][,...])如果用户定义函数用于定义计算列,则该函数的确定性同样决定了是否可在该计算列上创建索引。只有当函数具有确定性时,才可以在使用该函数的计算列上创建索引。如果在输入相同的情况下函数始终返回相同的值,则该函数具有确定性。可以使用由一部分组成的名称唤醒调用表值函数。[database_name.][owner_name.]function_name ([argument_expr][,...])对于 Microsoft® SQL Server™ 2000 中包含的系统表函数,唤醒调用时需在函数名的前面加上前缀"::"。SELECT *
FROM ::fn_helpcollations()对于导致语句停止执行然后从存储过程中的下一语句继续执行的 Transact-SQL 错误,在函数中的处理方式不同。在函数中,这类错误会导致函数停止执行。这反过来使唤醒调用该函数的语句停止执行。
returns @s table (a int)
as
begin
insert @s values(1)
return
end
select * from ks()
/*
a
-----------
1*/
实现表值函数很简单:
下面是一个不带输入参数的表值函数create function tvpoints()
returns table
as
return
(
select * from tb_users
);
这个表值函数数查询所有用户表的数据对于多语句表值函数,在 BEGIN...END 语句块中定义的函数体包含一系列 Transact-SQL 语句,这些语句可生成行并将其插入将返回的表中。以下示例创建了一个表值函数.create function tvpoints()
returns @points table (x float, y float)
as begin
insert @points values(1,2);
insert @points values(3,4);
return;
end查询表值函数跟查询普通表一样
select * from tvpoints()
返回的是一张表带输入参数的表值函数create function tvpoints2(@x AS int,@y as int)
returns @points table (x float, y float)
as begin
insert @points values(@x,@y);
return;
end本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fredrickhu/archive/2009/09/23/4583130.aspx