黑马程序员技术交流社区
标题:
数据库问题,求解?
[打印本页]
作者:
parker
时间:
2013-5-21 15:10
标题:
数据库问题,求解?
请问sql server数据库中临时表和表变量有什么区别?
作者:
迟强
时间:
2013-5-21 16:44
如 SQL Server 联机丛书“表”(Table) 一文中所述,表变量(如局部变量)具有明确定义的范围,在该范围结束时会自动清除这些表变量。
与临时表相比,表变量导致存储过程的重新编译更少。
涉及表变量的事务仅维持表变量上更新的持续时间。因此,使用表变量时,需要锁定和记录资源的情况更少。因为表变量具有有限的范围并且不是持久性数据库的一部分,所以事务回滚并不影响它们。
------------------------------------------------------------------------------------------------------------------------
网上给找的答案
作者:
张成智
时间:
2013-5-21 17:50
区别如下:
(1)、表变量是存储在内存中的,当用户在访问变量的时候,SQL Server时不产生日志的,而在临时表中是产生日志的。
(2)、表变量是不允许有DEFAULT默认值的,也不允许有约束。
(3)、在表变量中是不允许有非聚集索引的。
(4)、临时表中是有锁的机制的,而表变量中就没有锁的机制。
(5)、临时表上的统计信息是健全而可靠的,但是表变量上的统计信息是不可靠的。
作者:
parker
时间:
2013-5-22 09:04
张成智 发表于 2013-5-21 17:50
区别如下:
(1)、表变量是存储在内存中的,当用户在访问变量的时候,SQL Server时不产生日志的,而在临时表 ...
说的不错!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2