【问题标题】:How to insert the output of a SQL Query into a temporary table?如何将 SQL 查询的输出插入到临时表中?
【发布时间】:2018-07-06 13:40:24
【问题描述】:

我正在使用 SQL Server 2012,我想使用 T-SQL 执行以下操作:

  1. 创建一个临时表(我们称之为#temptable)。

  2. 将现有数据库中的表中的值插入 #temptable 使用 SELECT 语句。

  3. 编写将查询#temptableSELECT 语句。

我尝试了以下方法,但似乎语法不正确,或者我试图做的事情是不允许的。

USE MyDatabase

CREATE TABLE #temptable
GO

INSERT INTO #TempTable
SELECT  [Col A], [Col B], [Col C]

FROM MYLIST

WHERE [MONTH OF STAY] = '2018-03-01'

AND [Property] = 'ABC'

SELECT * FROM #temptable

我该如何继续前进?

【问题讨论】:

    标签: sql sql-server tsql sql-server-2012 temp-tables


    【解决方案1】:

    create temp table 中,您还需要指定列和数据类型。临时表的创建就像一个持久表。 但是您可以使用Select Into 语句,它将根据给定的Select 语句自动创建表 试试这个:

    USE MyDatabase
    GO
    
    IF OBJECT_ID('tempdb..#TempTable') Is Not null
        Drop Table #TempTable
    
    SELECT  [Col A], [Col B], [Col C]
    INTO #TempTable -- <<<<<
    FROM MYLIST
    
    WHERE [MONTH OF STAY] = '2018-03-01'
    
    AND [Property] = 'ABC'
    
    SELECT * FROM #temptable
    

    在上面的代码中,您需要检查给定名称的表是否存在?如果存在,那么您需要在执行Select Into 之前删除它。因为Select Into会自动为你创建表,如果存在同名表,则会报错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多