SQL Server中使用表值函數


函數有很多限制,不能使用動態語句,不能使用臨時表等等。。。細看一下,直接寫語句就行了,不用動態語句

insert into @re select id,parid,@I from videoclasspic where charindex(','+cast(id as varchar(10))+',',','+@parentid+',')>0 and isvalid=1

SqlServer表值函數:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM