SQL Server存儲進程中應用表值作為輸出參數示例。本站提示廣大學習愛好者:(SQL Server存儲進程中應用表值作為輸出參數示例)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL Server存儲進程中應用表值作為輸出參數示例正文
在2008之前假如我們想要將表作為輸出參數傳遞給SQL Server存儲進程使比擬艱苦的,能夠須要許多的邏輯處置將這些表數據作為字符串或許XML傳入。
在2008中供給了表值參數。應用表值參數,可以不用創立暫時表也許多參數,便可向 Transact-SQL 語句或例程(如存儲進程或函數)發送多行數據,如許可以省去許多自界說的代碼。如許的操尴尬刁難於存儲進程內基於表函數的操作變得異常輕易操作。
表值參數是應用用戶界說的表類型來聲明的。所以應用之前要先界說表類型。
/* 創立表類型.*/
CREATE TYPE LocationTableType AS TABLE
( LocationName VARCHAR(50)
, CostRate INT );
GO
/* 創立一個存儲進程以表值參數作為輸出. */
CREATE PROCEDURE dbo. usp_InsertProductionLocation
@TVP LocationTableType READONLY
AS
SET NOCOUNT ON
INSERT INTO Production.Location
(Name
,CostRate
,Availability
,ModifiedDate)
SELECT *, 0, GETDATE()
FROM @TVP;
GO
/* 聲明表值參數變量.*/
DECLARE @LocationTVP ASLocationTableType;
/* 將數據拔出表值變量*/
INSERT INTO @LocationTVP(LocationName, CostRate)
SELECT Name, 0.00
FROM Person.StateProvince;
/* 將變量傳遞給存儲進程*/
EXEC usp_InsertProductionLocation@LocationTVP;
GO
查詢表Production.Location可以看到數據曾經拔出了。