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