SQL Server 2008:传递表值参数 (2)

关键词:SQL Server 2008

 

传递表值参数功能的局限性

 

  在传递表值变量到程序中时必须使用 READONLY从句。表格变量里的数据不能做修改——除了修改你可以把数据用于任何其他的操作。另外,你也不能把表格变量用做OUTPUT参数——只能用做input参数。

  使用自己的新表格变量类型

  首先,要声明一个变量类型SalesHistoryTableType,不需要再一次定义表格结构,因为在创建这个表格类型的时候已经定义过了。

  DECLARE @DataTable AS SalesHistoryTableType
  The following script adds 1,000 records into my @DataTable table variable:
  DECLARE @i SMALLINT
  SET @i = 1
  WHILE (@i <=1000)
  BEGIN
  INSERT INTO @DataTable(Product, SaleDate, SalePrice)
  VALUES ('Computer', DATEADD(mm, @i, '3/11/1919'), DATEPART(ms, GETDATE()) + (@i + 57))
  INSERT INTO @DataTable(Product, SaleDate, SalePrice)
  VALUES('BigScreen', DATEADD(mm, @i, '3/11/1927'), DATEPART(ms, GETDATE()) + (@i + 13))
  INSERT INTO @DataTable(Product, SaleDate, SalePrice)
  VALUES('PoolTable', DATEADD(mm, @i, '3/11/1908'), DATEPART(ms, GETDATE()) + (@i + 29))
  SET @i = @i + 1
  END

  只要把数据加载到表格变量里,就可以把结构传递到存储过程中。

  注意:当表格变量作为参数传递后,表格会在存储在tempdb系统数据库里,而不是传递整个数据集在内存里。因为这样保证高效处理大批量数据。所有服务器方的表格变量参数传递都是通过使用reference调用tempdb中的表格。

  EXECUTE usp_InsertBigScreenProducts
  @TableVariable = @DataTable

  想要查询程序是否和预想效果一样,可以执行以下查询来看记录是否已经插入到 SalesHistory表格中:

  SELECT * FROM SalesHistory

  总结:

  虽然SQL Server 2008的参数传递功能的使用还有一些小小的局限性,比如不能修改参数中的数据和把变量用于output,但是它大大提高了程序性能,它可以减少server往返旅程数、利用表格限制并扩展编程在数据库引擎中的功能。





转载自:http://www.msnshow.cn/Article/200711/19091_2.htm



前一篇:SQL Server 2008:传递表值参数 (1)         tag:SQL Server 2008

下一篇:数据仓库:甲骨文 VS 微软         tag:数据仓库,甲骨文,oracle,微软,SQL Server 2005,SQL Server 2008,OLAP,商业智能,BI


相关文章:

你究竟对SQL Server 2005了解多少?tag:SQL Server 2005,SQL Server 2008,商务智能BI,分析服务(Analysis Services)
SQL Server 2008和T-SQL新功能tag:SQL Server 2008
SQL Server中的新数据类型:HierarchyIdtag:SQL Server,HierarchyId
SQL Server 2008中的数据类型tag:SQL Server 2008,数据类型
微软预先展示"Server 2008"五大版本tag:
解析SQL Server 2008 数据仓库tag:SQL Server 2008,数据仓库,商业智能,SSIS
SQL Server 2008对T-SQL语言的增强(1)tag:SQL Server 2008,T-SQL
SQL Server 2008对T-SQL语言的增强(2)tag:SQL Server 2008,T-SQL
SQL Server 2008对T-SQL语言的增强(3)tag:SQL Server 2008,T-SQL
SQL Server 2008 Reporting Service架构tag:SQL Server 2008,Reporting Service
Visual Studio 2008中的SQL数据库发布tag:Visual Studio 2008,数据库,Visual Studio 2008
带你轻松接触SQL Server 2008-- Katmaitag:SQL Server 2008,Katmai,商业智能
SQL Server 2008四项新特性概述tag:SQL Server 2008,集成服务,分析服务,SSAS,报表服务
解读SQL Server 2008的新语句MERGEtag:SQL Server 2008,MERGE
解析SQL Server 2008在线事务处理功能tag:SQL Server 2008,在线事务处理,OLTP
解析SQL Server 2008商业智能tag:SQL Server 2008,商业智能,报表解决方案,OLAP,
SQL Server 2008精妙之处tag:SQL Server 2008,仪表盘
理解SQL Server 2005 Reporting Servicetag:SQL Server 2005,Reporting Service,报表
ADOMDConnection对象tag:ADOMD.Net,ADOMDConnection,Analysis Services
关于OLAPtag:OLAP,Analysis Services,Cube,OWC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值