插入带有子查询的临时表

时间:2019-07-10 03:12:15

标签: sql sql-server

我试图用insert into....select插入到临时表中。 我当前的语句如下:

insert into ods.account
(
  AccountNumber,
  AccountName,
  AccountCreated,
  AccountEnded,
  PayoffDate
)
select
  AccountNumber
  , AccountName
  , AccountCreated
  , AccountEnded
  , PayoffDate 
from dbo.InsuranceAccount

如果可能,我希望将此信息放入临时表中,我想在SQL Server中查询顶部插入临时表中。

3 个答案:

答案 0 :(得分:1)

您可以简单地做到:

select
  AccountNumber
  , AccountName
  , AccountCreated
  , AccountEnded
  , PayoffDate into #myTempTable
from dbo.InsuranceAccount

或者您可以先创建临时表,然后执行插入操作:

create table #tempTable(AccountName varchar(100), AccountNumber int)-- so on..
insert into #tempTable(AccountName, AccountNumber)
select AccountName, AccountNumber from dbo.InsuranceAccount

答案 1 :(得分:0)

使用SQL中的临时表可以通过几种方法进行此操作。

如果只想将选择内容插入到临时表中,请使用以下方法。请记住,您不能在循环中使用它,因为每次选择运行时它都会创建临时表:

select
  AccountNumber
  , AccountName
  , AccountCreated
  , AccountEnded
  , PayoffDate 
into #temp_table      
from dbo.InsuranceAccount

您还可以预定义临时表,然后像使用其他任何表一样使用INSERT INTO。此方法很好,因为您可以在WHILE循环中使用这种临时表,并在每个循环中插入数据。

create table #temp_table
(
  field1 int not null,
  field2 char(1),
  ...
)

insert into #temp_table
select 
  AccountNumber
  , AccountName
  , AccountCreated
  , AccountEnded
  , PayoffDate      
from dbo.InsuranceAccount

答案 2 :(得分:0)

这可能有帮助。

IF OBJECT_ID('temp..#InsuranceAccount') IS NOT NULL
BEGIN
    DROP TABLE #InsuranceAccount
END

SELECT  AccountNumber
      , AccountName
      , AccountCreated
      , AccountEnded
      , PayoffDate 
INTO  #InsuranceAccount
FROM dbo.InsuranceAccount