我的表定义如下:
#TempData(ColmnA, ColumnB) -- Temp table.
EmployeeDSU(ColumnA, ColumnB, ColumnC, ColumnD, ColumnE)
#TempData
来自.csv文件,列可能会更改。
现在,我想做的是:
如果ColumnA
中存在ColumnB
,EmployeesDSU
,那么#TempData
数据应插入EmployeesDSU
表中,并插入{{1}中的所有剩余列} table,EmployeesDSU
应该被插入。我应该在存储过程中执行所有操作。
任何人都可以建议我怎么做!
答案 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;