代码之家  ›  专栏  ›  技术社区  ›  Sylar

创建包含预填充列的临时表

  •  1
  • Sylar  · 技术社区  · 6 年前

    我试图创建一个临时表 #TempTable 有柱子。有很多栏,我不想用手把它们全部打出来。如果有道理的话,有没有办法预先填充?

    而不是

    CREATE #TempTable (col1, col2 ... col1000) -- Im not saying we have 1000
    

    但是做:

    CREATE #TempTable (SELECT column_name 
                       from information_schema.columns where table_name = 'OriginalTable')
    

    这可能吗?我正在使用MS SQL。

    3 回复  |  直到 6 年前
        1
  •  3
  •   Yogesh Sharma    6 年前

    你可以的 SELECT . . . INTO :

    SELECT ot.* INTO #TempTable 
    FROM OriginalTable ot
    WHERE 1 = 0;
    

    选择。进入 声明 #TempTable 必须不存在。

        2
  •  1
  •   martijn    6 年前

    IF OBJECT_ID('tempdb..#tmp') IS NOT NULL
        DROP TABLE #tmp
    
    select * 
    into #tmp 
    from OriginalTable
    
        3
  •  1
  •   Abhishek    6 年前

    一种方法-

    select top 0 * into #TempTable from OriginalTable
    

    如果不想指定*(通配符)并希望在临时表中创建OriginalTable中的特定列-

    select top 0 col1,col2,col3 into #TempTable from OriginalTable