注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 CCIE-Lab考试将新增10分钟..
 帮助

SQL SERVER2000教程-第五章 处理数据 第二十四节 使用table数据类型变量获得临时表


2007-10-01 14:26:15
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenxing.blog.51cto.com/240526/44613
Table数据类型是一种特殊的数据类型,用于存储结果集以供后续处理。该数据类型主要用于临时存储一组行,这些行将作为表值函数的结果集返回
Table数据类型最主要的用途是作为多条数据记录的临时存储之处,此外还可以作为一个用户定义函数的返回值。
用户需要注意使用DECLARE @local_variable来声明table类型的变量
--声明TABLE变量@Var_tableGoods
DECLARE @Var_tableGoods TABLE
                     (
                      订单编号 [int] NOT NULL,
                      书籍编号 [int] NOT NULL,
                      单价 [money] NOT NULL,
                      数量 [smallint] NOT NULL,
                      折扣 [real] NOT NULL
                      )
--将”作者表”中统计的数据添加到TABLE变量@Var_tableAuthor
INSERT INTO @Var_tableGoods
  SELECT * FROM 订货表
--将TABLE变量@Var_tableAuthor中的内容显示出来
SELECT * FROM @Var_tableGoods
Table变量有以下优点:
1)Table变量的行为类似于局部变量,定义有明确的作用域,该作用域为声明该变量的函数、存储过程或批处理的作用范围。
2)在其作用域内,table变量可像常规表那样使用。该变量可应用于SELECT、INSERT、UPDATE和DELETE语句中用到表或表的表达式的地方。
3)在定义table变量的函数、存储过程或批处理结束时,自动清除table变量
4)在存储过程中使用表变量与使用临时表相比,减少了存储过程的重新编译量。
5)涉及表变量的事务只在表变量更新期存在,这样就减少了表变量对锁定和记录资源的需求。
6)不支持在表变量之间进行赋值操作。另处,由于表变量作用域有限,并且不是持久数据库的一部分,因而不受事务回滚的影响。
 
 

 

本文出自 “半瓶香油-好男人时来运转” 博客,请务必保留此出处http://chenxing.blog.51cto.com/240526/44613





    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: