下面的示例使用 Transact-SQL 并演示如何执行以下操作:创建表值参数类型,声明变量来引用它,填充参数列表,然后将值传递到存储过程。
1 USE AdventureWorks; 2 GO 3 4 /*创建表值参数类型 */ 5 CREATE TYPE LocationTableType AS TABLE 6 ( LocationName VARCHAR(50) 7 , CostRate INT ); 8 GO 9 10 /* 创建一个过程来获得该表值参数数据 */ 11 CREATE PROCEDURE usp_InsertProductionLocation 12 @TVP LocationTableType READONLY 13 AS 14 SET NOCOUNT ON 15 INSERT INTO [AdventureWorks].[Production].[Location] 16 ([Name] 17 ,[CostRate] 18 ,[Availability] 19 ,[ModifiedDate]) 20 SELECT *, 0, GETDATE() 21 FROM @TVP; 22 GO 23 24 /*声明一个变量来引用该类型*/ 25 DECLARE @LocationTVP 26 AS LocationTableType; 27 28 /* Add data to the table variable. */ 29 INSERT INTO @LocationTVP (LocationName, CostRate) 30 SELECT [Name], 0.00 31 FROM 32 [AdventureWorks].[Person].[StateProvince]; 33 34 /* 把表变量的数据传递给存储过程 */ 35 EXEC usp_InsertProductionLocation @LocationTVP; 36 GO