SQL Server 中,怎么创建和写入临时表?

在 SQL Server 中,你可以使用多种方法创建和写入临时表。临时表在会话期间存在,并在会话结束时或显式删除时消失。这使得它们成为存储临时结果或中间数据的理想选择。

以下是创建和写入临时表的基本步骤:

  1. 创建局部临时表(以 # 开头):
sql复制代码-- 创建一个局部临时表  CREATE TABLE #TempTable  (      ID INT,      Name NVARCHAR(50),      Age INT  );    -- 写入数据  INSERT INTO #TempTable (ID, Name, Age)  VALUES (1, 'Alice', 30), (2, 'Bob', 25);    -- 查询数据  SELECT * FROM #TempTable;    -- 在会话结束时,#TempTable 会自动删除
  1. 创建全局临时表(以 ## 开头):

全局临时表在所有会话中都是可见的,但也会在最后一个引用它的会话结束时删除。

sql复制代码-- 创建一个全局临时表  CREATE TABLE ##GlobalTempTable  (      ID INT,      Name NVARCHAR(50),      Age INT  );    -- 写入数据  INSERT INTO ##GlobalTempTable (ID, Name, Age)  VALUES (1, 'Charlie', 35), (2, 'David', 40);    -- 查询数据  SELECT * FROM ##GlobalTempTable;    -- 当最后一个引用它的会话结束时,##GlobalTempTable 会自动删除
  1. 使用 SELECT INTO 创建和填充临时表

你也可以使用 SELECT INTO 语句直接从查询结果中创建和填充临时表。

sql复制代码-- 从另一个表选择数据并创建和填充局部临时表  SELECT * INTO #TempFromAnotherTable  FROM SomeOtherTable  WHERE SomeCondition = 'SomeValue';    -- 查询数据  SELECT * FROM #TempFromAnotherTable;
  1. 注意
    • 临时表在存储过程中特别有用,因为它们允许你在会话的多个部分之间传递数据,而无需将数据返回给客户端并在后续调用中重新发送。
    • 临时表通常比表变量更快,特别是当处理大量数据时。但是,表变量在存储过程中提供了更好的封装和隔离。
    • 在使用全局临时表时要特别小心,因为它们可能导致意外的资源争用和锁定问题。


微信扫描下方的二维码阅读本文

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部