从事开发到现在,之前有了解过sql server中临时表和table表类型使用上的区别,但都是浅尝辄止,过段时间又忘记了,现在打算记录下来:
1.表变量是在sql server2000中加入的新类型,目的是为了解决临时表导致的存储过程重新编译的问题(存储过程满足一定的条件下会发生重新编译,比如表结构或者视图结构发生变化),使用表变量就可以解决这个问题。
2.表变量带来一个局限性就是只能在其命名空间内使用,作用域属于代码块级别,临时表则属于会话级别或全局
3.同样由于作用域的关系,需要执行动态sql时不能使用表变量,而应该使用临时表
4.表值函数返回的表可以直接参与表连接等操作