日期:2014-05-18 浏览次数:20643 次
创建自定义表值函数   获取此id教师下的学生列表  
create function getStudent(@tid int)  
returns @tmp table(sid int ,tid int,sName varchar(10))  
as  
begin  
    with cte(sid, tid, sName)  
    as  
    (  
        select sid, tid, sName from Student where tid=@tid  
    )  
    insert into @tmp select * from cte  
    return  
end  
--查询调用  与上面不用表值函数的写法对照一下,会好理解点  
select * from Teacher t cross apply getStudent(t.tid)--在查询中调用表值函数  
--查询结果  
tid         tName      sid         tid         sName  
----------- ---------- ----------- ----------- ----------  
1           li         1           1           zhou  
1           li         2           1           wu  
2           zhang      3           2           zheng  
2           zhang      4           2           wang  
  
(4 行受影响)