SQL Server 2008 表值参数用法

下面的示例使用 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

 

posted @ 2015-03-14 14:17  isfish  阅读(1667)  评论(0编辑  收藏  举报