使用临时表

已完成

可以使用 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;