admin 管理员组

文章数量: 1184232


2024年3月13日发(作者:redis详细教程)

实例讲解如何把表格变量传递到存储过程中

在Microsoft SQL Server 2008中,你可以实现把表格变量传递到存储过程中,如果变量可以被声明,那

么它就可以被传递。下面我们来具体介绍如何把表格变量(包括内含的数据)传递到存储过程和功能中去。

传递表值参数

用户经常会碰到许多需要把数值容器而非单个数值放到存储过程里的情况。对于大部分的编程语言而言,

把容器数据结构传递到例程里或传递出来是很常见而且很必要的功能。TSQL也不例外。

SQL Server 2000通过OPENXML可以实现这个功能,用户可以把数据存储为VARCHAR数据类型然后

进行传递。到了SQL Server 2005,随着 XML数据类型以及XQuery的出现,这个功能变得容易一点。但用

户仍然需要对XML数据进行组建和粉碎才能够使用它,因此这个功能使用起来并不简单。SQL Server 2008

则能够把表值数据类型传递到存储过程和功能中,从而大大地简化了编程的工作,因为程序员无需再花心思去

组建和解析XML数据了。该功能还可以让客户方开发员传递客户方数据表格到数据库中。

怎样传递表格参数?

以销售为例,首先建立一个 my SalesHistory表格,里面包含了产品销售的信息。写以下脚本就可以在数

据库里创建你选择的表格:

IF OBJECT_ID('SalesHistory')>0

DROP TABLE SalesHistory;

GO

CREATE TABLE [dbo].[SalesHistory]

(

[SaleID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,

[Product] [varchar](10) NULL,

[SaleDate] [datetime] NULL,

[SalePrice] [money] NULL

)

GO

建立表值参数第一步是创建确切的表格类型,这一步非常重要,因为这样你就可以在数据库引擎里定义表

格的结构,让你可以在需要的时候在过程代码里使用该表格。下面的代码创建 SalesHistoryTableType 表格类

型定义:

CREATE TYPE SalesHistoryTableType AS TABLE

(

[Product] [varchar](10) NULL,

[SaleDate] [datetime] NULL,

[SalePrice] [money] NULL


本文标签: 传递 表格 过程 数据 变量