内容摘要:表值参数(Table-valued parameter)是SQL Server2008的一个新特性,在以前的版本中,没有办法把表变量当作一个参数传递给存储过程。微软在SQL Server2008中引入了表值参数的特性,可以实现这项功能。
表值参数(Table-valued parameter)是SQL Server 2008的一个新特性,在以前的版本中,没有办法把表变量当作一个参数传递给存储过程。微软在SQL Server2008中引入了表值参数的特性,可以实现这项功能。
表值参数有两大优点:一是它不需要为初始的数据加锁,二是它不会导致语句重新编译。
表值参数的创建和使用包括以下步骤:
1) 创建表类型
2) 创建一个可将表类型作为参数来接受的存储过程或函数
3) 创建表变量并插入数据
4) 调用该存储过程和函数,并将表变量作为参数传递。
下面,我们来一步步分解这个创建和使用的过程。首先,我们用以下的DDL SQL语句来创建一个名为“TestDB”的测试数据库:
USE[master]
GO
IFEXISTS(SELECTnameFROMsys.databasesWHEREname=N'TestDB')
DROPDATABASETestDB
GO
CreatedatabaseTestDB
go
接下来我们使用以下的DDL SQL语句来创建一个名为TestLocationTable的表:
USE[TestDB]
GO
IFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[TestLocationTable]')ANDtypein(N'U'))
DROPTABLE[dbo].[TestLocationTable]
GO
USE[TestDB]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[TestLocationTable](
[Id][int]NULL,
[shortname][char](3)NULL,
[name][varchar](100)NULL
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
来源:IT专家网 作者:cyw 责编:豆豆技术应用