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