天天看點

SQL表值函數

    

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