使用临时表

已完成

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