【问题标题】:How to create temporary tables in SQL SERVER? [duplicate]如何在 SQL SERVER 中创建临时表? [复制]
【发布时间】:2019-11-29 12:36:16
【问题描述】:

我正在尝试从另一个表(例如在 Redshift 中)在 SQL Server 中创建一个临时表,我执行以下操作

Create temporay table CARS as (
SELECT *
FROM BD_CARS_111
);

SELECT *
FROM CARS;

SQL SERVER中是否有类似的语句?

【问题讨论】:

  • CREATE TABLE #Cars。 SQL Server 没有特殊语句,而是有special names

标签: sql sql-server temp-tables


【解决方案1】:

您可以通过在表名前加上# 或## 来创建临时表。单个 # 临时表特定于连接和会话(也就是创建它的人)。 Double ## 临时表是全局的,其他连接也可以看到和使用。当所有使用它的连接都关闭时,后者就会消失。

根据您的示例,在 MS SQL Server 中将是:

SELECT *
into #Cars
FROM BD_CARS_111;

SELECT * FROM #CARS;

【讨论】:

  • 谢谢。我能够从一个选择示例创建一个临时表:code SELECT * into #Cars FROM (SELECT * FROM BD_CARS_111) BD_C; code
  • @dapdap,你不需要写多余的代码。像我在上面的示例中那样编写就足够了。 IOW: SELECT * into #Cars FROM BD_CARS_111;
【解决方案2】:
SELECT
    product_name,
    list_price
INTO #trek_products --- temporary table
FROM
    production.products
WHERE
    brand_id = 9;

【讨论】:

  • SQL Server 提供了两种通过 SELECT INTO 和 CREATE TABLE 语句创建临时表的方法。
  • 第二种创建临时表的方法是使用CREATE TABLE CREATE TABLE #haro_products ( product_name VARCHAR(MAX), list_price DEC(10,2) );
  • 如果您编辑了答案而不是提供解释性 cmets 会更好。
猜你喜欢
  • 1970-01-01
  • 2013-05-26
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多