SQL Server存儲過程中使用表值作為輸入參數示例


    這篇文章主要介紹了SQL Server存儲過程中使用表值作為輸入參數示例,使用表值參數,可以不必創建臨時表或許多參數,即可向 Transact-SQL 語句或例程(如存儲過程或函數)發送多行數據,這樣可以省去很多自定義的代碼,需要的朋友可以參考下。
    在2008之前如果我們想要將表作為輸入參數傳遞給SQL Server存儲過程使比較困難的,可能需要很多的邏輯處理將這些表數據作為字符串或者XML傳入。
    在2008中提供了表值參數。使用表值參數,可以不必創建臨時表或許多參數,即可向 Transact-SQL 語句或例程(如存儲過程或函數)發送多行數據,這樣可以省去很多自定義的代碼。這樣的操作對於存儲過程內基於表函數的操作變得非常容易操作。
    表值參數是使用用戶定義的表類型來聲明的。所以使用之前要先定義表類型。

/* 創建表類型.*/
create type XTableType as table(ID int,Names varchar(10));
go
  
/* 創建一個存儲過程以表值參數作為輸入 */
create Procedure sp_test(@tp1 XTableType readonly)
as
set NoCount on
select *,getdate() from @tp1;
set NoCount off
go

  
/* 聲明表值參數變量.*/
declare @tp2 as XTableType;
  
/* 將數據插入表值變量*/
Insert into @tp2(ID,Names)
select 1,'a'
union select 2,'b'
union select 3,'c';
  
/* 將變量傳遞給存儲過程*/
EXEC sp_test @tp2;
go

 


免責聲明!

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



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