选择特定列并插入另一个表中

时间:2016-02-29 17:15:10

标签: sql-server

我的表定义如下:

#TempData(ColmnA, ColumnB) -- Temp table.
EmployeeDSU(ColumnA, ColumnB, ColumnC, ColumnD, ColumnE)

#TempData来自.csv文件,列可能会更改。

现在,我想做的是: 如果ColumnA中存在ColumnBEmployeesDSU,那么#TempData数据应插入EmployeesDSU表中,并插入{{1}中的所有剩余列} table,EmployeesDSU应该被插入。我应该在存储过程中执行所有操作。

任何人都可以建议我怎么做!

1 个答案:

答案 0 :(得分:0)

if object_id('tempdb..#TempData') is not null drop table #TempData;
select 1 ColumnA, 1 ColumnB into #TempData;

if not exists(
  select
    *
  from
    (
      select
        c.name
      from
        tempdb.sys.columns c
      where
        c.object_id = object_id('tempdb..#TempData')
    ) a
    left join (
      select
        *
      from
        sys.columns c
      where
        c.object_id = object_id('dbo.EmployeeDSU')
    ) b on a.name = b.name
  where
    b.name is null
) begin

  insert into dbo.EmployeeDSU(ColumnA, ColumnB)
  select
    t.ColumnA, t.ColumnB
  from
    #TempData t
  ;

end;