表类型简化了表变量的定义。通过创建表类型,可以把表的定义保存到数据库中,以后在定义表变量,存储过程和用户定义函数的输入参数时,就可以将表类型作为表的定义而重用。

下面的示例演示了如何通过表类型来简化表变量的定义,并且如何重用它。

USE TSQLFundamentals2008;
GO

IF TYPE_ID('dbo.OrderTotalsByYear') IS NOT NULL DROP TYPE dbo.OrderTotalsByYear;
GO
-- 创建表类型
CREATE TYPE dbo.OrderTotalsByYear AS TABLE
(
    orderyear INT NOT NULL PRIMARY KEY,
    qty INT NOT NULL
);

-- 通过表类型创建表变量,并且填充数据
DECLARE @MyOrderTotalsByYear AS dbo.OrderTotalsByYear;

INSERT INTO @MyOrderTotalsByYear( orderyear,qty )
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;

查询结果:

posted on 2014-09-19 16:58  永远的麦子  阅读(925)  评论(0编辑  收藏  举报