程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL Server存儲進程中應用表值作為輸出參數示例

SQL Server存儲進程中應用表值作為輸出參數示例

編輯:MSSQL

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可以看到數據曾經拔出了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved