2012-04-16

MS SQL Function 回傳資料表(Table)

透過View可以將一些常用但又較為複雜的查詢語法,
產生虛擬的資料表,簡化我們的查詢,
但在View並無法利用T-SQL彙整更新我們想要得到的查詢結果,
此時可使用Function並將回傳型態設為Table,來達到需求!
--建立測試用Function
CREATE FUNCTION [dbo].[FN_TEST]                 (@xGPNo varchar(5))--傳入值 RETURNS @TABLE TABLE (--設定傳入值格式                 DTNo varchar(5),                 DTNa Nvarchar(50),                 Item Nvarchar(100))--設定回傳值格式 AS BEGIN       --依據傳入GPNo將查詢結果INSERT至@TABLE     INSERT INTO @TABLE (DTNo,DTNa)     select DTNo,DTNa     from NOM     where GPNo=@xGPNo      --將@TABLE中DTNo及DTNa合併更新至Item欄位     UPDATE @TABLE     SET Item=DTNo+'-'+DTNa      RETURN--回傳 END --查詢 select * from FN_TEST('PI') --結果 DTNo    DTNa    Item MT    原材料    MT-原材料 PIP    在製品    PIP-在製品 WIP    中間製品    WIP-中間製品

沒有留言: