WEB开发网
开发学院数据库MSSQL Server SQL Server 2008:传递表值参数 阅读

SQL Server 2008:传递表值参数

 2007-12-04 09:50:36 来源:WEB开发网   
核心提示:许多人一直希望能够实现把表格变量传递到存储过程中,如果变量可以被声明,SQL Server 2008:传递表值参数,那么它就应该能够被传递,而最新的SQL Server 2008则有这项功能!想知道如何才能把表格变量(包括内含的数据)传递到存储过程和功能中去吗? 为什么要传递表值参数?用户常常会碰到许多需要把数值容器而

许多人一直希望能够实现把表格变量传递到存储过程中,如果变量可以被声明,那么它就应该能够被传递。而最新的SQL Server 2008则有这项功能!想知道如何才能把表格变量(包括内含的数据)传递到存储过程和功能中去吗?

为什么要传递表值参数?

用户常常会碰到许多需要把数值容器而非单个数值放到存储过程里的情况。对于大部分的编程语言而言,把容器数据结构传递到例程里或传递出来是很常见而且很必要的功能。TSQL也不例外。

SQL Server 2000通过OPENXML可以实现这个功能,用户可以把数据存储为VARCHAR数据类型然后进行传递。到了SQL Server 2005,随着 XML数据类型以及XQuery的出现,这个功能变得容易一点。但用户仍然需要对XML数据进行组建和粉碎才能够使用它,因此这个功能使用起来并不简单。SQL Server 2008则能够把表值数据类型传递到存储过程和功能中,从而大大地简化了编程的工作,因为程序员无需再花心思去组建和解析XML数据了。该功能还可以让客户方开发员传递客户方数据表格到数据库中。

如何传递表格参数?

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

  IFOBJECT_ID('SalesHistory')>0
  DROPTABLESalesHistory;
  GO
  CREATETABLE[dbo].[SalesHistory]
  (
  [SaleID][int]IDENTITY(1,1)NOTNULLPRIMARYKEY,
  [Product][varchar](10)NULL,
  [SaleDate][datetime]NULL,
  [SalePrice][money]NULL
  )
  GO

建立表值参数第一步是创建确切的表格类型,这一步非常重要,因为这样你就可以在数据库引擎里定义表格的结构,让你可以在需要的时候在过程代码里使用该表格。下面的代码创建 SalesHistoryTableType 表格类型定义:

1 2  下一页

Tags:SQL Server 传递

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接