表变量和局部临时表非常相似,除了能实现相同的功能外,它们主要有两点不同,首先声明表变量是用DECLARE语句,而不是CREATE TABLE语句,第二点是表变量也只对创建它的会话可见,但允许访问的范围更小,它只对当前批处理可见,它对调用堆栈中当前批处理的内部批处理是不可见的,对会话中随后的批处理也是不可见的。
下面是使用表变量的示例和代码。
declare @Dept table ( ID int , DeptName nvarchar(20) ); insert into @Dept(ID, DeptName) select ID,DeptName from Dept -- 查询表变量 select * from @Dept;
查询结果: