表变量

时间:2014-09-19 17:36:25   收藏:0   阅读:151

  表变量和局部临时表非常相似,除了能实现相同的功能外,它们主要有两点不同,首先声明表变量是用DECLARE语句,而不是CREATE TABLE语句,第二点是表变量也只对创建它的会话可见,但允许访问的范围更小,它只对当前批处理可见,它对调用堆栈中当前批处理的内部批处理是不可见的,对会话中随后的批处理也是不可见的。

  下面是使用表变量的示例和代码。

-- 表变量
DECLARE @MyOrderTotalsByYear TABLE
(
    ID INT NOT NULL PRIMARY KEY,
    Val NVARCHAR(50) NOT NULL
);

INSERT INTO @MyOrderTotalsByYear( ID, Val )
SELECT YEAR(orders.orderdate)AS orderdate,SUM(orderdetails.qty) AS qty FROM Sales.Orders AS orders
LEFT JOIN Sales.OrderDetails AS orderdetails ON orders.orderid = orderdetails.orderid
GROUP BY YEAR(orders.orderdate);

-- 查询表变量
SELECT * FROM @MyOrderTotalsByYear;

查询结果:

bubuko.com,布布扣

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!