sqlserver 多语句表值函数例子

Deadly 提交于 2020-02-02 19:38:51

多语句表值函数顾名思义是返回了一张表,可以传入多个参数

 

 

1.定义

 1 Use AdventureWorks2014;
 2 go
 3 if exists(select * from sys.objects where name='udf_SEL_SalesQuota')
 4 drop function dbo.udf_SEL_SalesQuota;
 5 go
 6 CREATE FUNCTION dbo.udf_SEL_SalesQuota ( @BusinessEntityID int, @ShowHistory bit )
 7 RETURNS @SalesQuota TABLE 
 8     (
 9         BusinessEntityID int, 
10         QuotaDate datetime, 
11         SalesQuota money
12     )
13 as
14 begin
15     INSERT Into @SalesQuota(BusinessEntityID, QuotaDate, SalesQuota)
16     SELECT BusinessEntityID, ModifiedDate, SalesQuota
17     FROM Sales.SalesPerson
18     WHERE BusinessEntityID = @BusinessEntityID;
19 
20     IF @ShowHistory = 1
21          begin
22             INSERT Into @SalesQuota(BusinessEntityID, QuotaDate, SalesQuota)
23             SELECT BusinessEntityID, QuotaDate, SalesQuota
24             FROM Sales.SalesPersonQuotaHistory
25             WHERE BusinessEntityID = @BusinessEntityID;
26          end
27 
28     return
29 
30 end

2.调用

1 Use AdventureWorks2014;
2 GO
3 SELECT BusinessEntityID, QuotaDate, SalesQuota      
4 FROM dbo.udf_SEL_SalesQuota (275,0);

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!