SQL Server 2008:表值参数的创建和使用

您当前的位置:   首页 > 首页 > 解决方案
SQL Server 2008:表值参数的创建和使用
发布时间:2026-07-13 14:34:00

表值参数(Table-valued parameter)是SQL Server 2008的一个新特性,在以前的版本中,没有办法把表变量当作一个参数传递给存储过程。微软在SQL Server2008中引入了表值参数的特性,可以实现这项功能。

表值参数有两大优点:一是它不需要为初始的数据加锁,二是它不会导致语句重新编译。

表值参数的创建和使用包括以下步骤:

1) 创建表类型

2) 创建一个可将表类型作为参数来接受的存储过程或函数

3) 创建表变量并插入数据

4) 调用该存储过程和函数,并将表变量作为参数传递。

下面,我们来一步步分解这个创建和使用的过程。首先,我们用以下的DDL SQL语句来创建一个名为“TestDB”的测试数据库:

USE [master]

然后,使用以下的DML SQL语句将数据添加到我们上面创建的表中:

下一步,大家要创建一个和TestLocationTable表具有相似表结构的表类型(TABLE TYPE),语句如下:

 USE [TestDB]

紧接着,大家要创建一个可以将表类型作为一个参数来接受的存储过程,使用的语句如下:

USE [TestDB]

查询结果如下所示:

Id, shortname, name

从返回的结果,我们可以看到存储过程usp_InsertProdLocation 插入了表变量@TV中和表TestLocationTable所有不匹配的行。

我们还可以将表变量传递给一个函数。下面我们创建一个简单的函数,语句如下:

 

USE [TestDB]

执行结果如下:

 (1 row(s) affected)

SQL Server 2008:表值参数的创建和使用

注:上面所演示的脚本都是在SQL Server 2008 CTP6版本上进行编写并经过测试的。

声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

IT头条

SQL Server 2008:表值参数的创建和使用

技术热点

SQL Server 2008:表值参数的创建和使用

SQL Server 2008:表值参数的创建和使用