在SQL Server 2008中运用表值参数(TVP)_Mssql数据库教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:SQL Server数据库增强版备份体验
老鸟说事:Microsoft SQL Server数据库增强版备份体验 在欧洲,有一首流传很广的民谚: 因为丢失一根铁钉,我们失去了一块马蹄铁; 因为失去一块马蹄铁,我们失去了一匹骏马; 因为失去

问题:

  当我们浏览SQL Server 2008的新特性的时候,我们发现一个很有趣的特性叫做表值参数(Table-Valued Parameter)。你能否给我们详细介绍一下我们可以如何利用这个新特性吗?

  专家解答:

  表值参数确实是SQL Server 2008的一个新特性。顾名思义,表值参数表示你可以把一个表类型作为参数传递到函数或存储过程里。更高级的功能方面,表值参数的功能可以允许你向被声明为T-SQL变量的表中导入数据,然后把该表作为一个参数传递到存储过程或函数中去。表值参数的优点在于你可以向存储过程或函数发送多行数据,而无需向以前那样必须声明多个参数或者使用XML参数类型来处理多行数据。据说,表值参数可以处理多达1000行数据。

  我们在这里将会介绍表值参数,并举一些简单的编码例子来演示如何通过使用表值参数来完成以下任务:

  创建可以作为表值参数传递到函数或存储过程的表类型

  创建使用表值参数的存储过程

  声明表类型,向该表导入数据,并把它传递到存储过程里

  在数据仓库应用程序里的数据加载过程,我们一般会在维度处理过程中把源系统键对应到代理键;然后使用代理键来识别数据仓库中的维度行。这样对维度行进行的每一个改动都会存储在一行带有新代理键的新行中,我们就可以保存维度行的完整历史记录。当对维度行进行改动或添加新行时,我们只需要给源系统键添加一个新的代理键并在维度表里插入新的一行就可以了。在处理事实行(fact rows)时,我们查找代理键并将其存储在事实表中。查询通过代理键连接事实表和维度表。由于多个事实表通常会索引至同一个维度(例如Customer),代理键查找功能可以给我们提供一个使用表值参数的很好的例子。我们可以在存储过程中执行一次代理键查找,然后在多个事实表的数据载入过程中调用这个代理键查找。

分享:如何有效防止Java程序源码被人偷窥?
Java程序的源代码很容易被别人偷看,只要有一个反编译器,任何人都可以分析别人的代码。本文讨论如何在不修改原有程序的情况下,通过加密技术保护源代码。 一、为什么要加密? 对于传统的C或

共3页上一页123下一页
来源:模板无忧//所属分类:Mssql数据库教程/更新时间:2008-08-22
相关Mssql数据库教程