使用临时表
可以使用 Transact-SQL 创建临时表。 临时表有两种类型:
- 本地临时表
- 全局临时表
创建本地临时表
使用本地临时表创建适用于当前会话的限定范围的表。 这意味着临时表仅对用户可见,会话结束时,该表不再存在。 多个用户可以使用同一名称创建表,它们之间不会有任何影响。
若要创建本地临时表,请使用与创建常规表时相同的方法。 但是,在表名之前添加 #,以表示它是本地临时表:
CREATE TABLE #Products (
ProductID INT PRIMARY KEY,
ProductName varchar,
...
);
创建全局临时表
还可以创建全局临时表。 全局临时表可在所有会话中访问。 但这意味着全局临时表必须具有唯一名称,这与本地临时表不同。 全局临时表会在创建它的会话结束时自动删除,所有会话中引用全局临时表的所有任务也将结束。 创建全局临时表的方式与创建本地临时表的方式相同,不同之处是使用 ## 而不是单个 # 指定它为全局临时表:
CREATE TABLE ##Products (
ProductID INT PRIMARY KEY,
ProductName varchar,
...
);
从临时表插入和读取数据
可以使用与常规表相同的方法(使用 INSERT)将数据插入临时表(本地表和全局表)。 只需确保将 # 或 ## 追加到表名。 例如:
INSERT #Products (ProductID, ProductName, ProductDescription)
VALUES (1, 'The temporary time leap', 'A novel about temporary time leaping.');
还可使用 SELECT 从临时表中检索结果。 例如,若要检索 #Products 临时表的所有行和列,并按产品名称对结果进行排序,需要运行:
SELECT *
FROM #Products
ORDER BY ProductName;