Tsql T-SQL,从源中的列中获取不同的值,检查目标,如果不存在则插入
我见过几个类似的问题,但没有一个和我的完全一样。T-SQL的上帝应该能够回答这是一个闪光 来自HRMS系统提要的员工和部门代码的源表(提要)。我的SQL Server数据库中有一个employees表和一个departments表。我需要有一个存储过程,它将首先在feeder表中获得部门代码的不同列表,然后检查这些代码以查看它们是否存在于departments表中。如果没有,则从feeder表插入departments表。然后,在employee表中插入 现在,我发现其中一位业务分析师在Excel中获得了单独的部门列表,并手动添加它们。当数据已经从HRMS进入进料器表时,看起来很疯狂。我可以进行插入,但我不知道如何在feeder表中循环,以查看departments表中是否已经存在每行中的department代码。谢谢你的帮助 J.您可以在SQL 2008或更高版本中使用关键字。我刚刚测试了这个片段:Tsql T-SQL,从源中的列中获取不同的值,检查目标,如果不存在则插入,tsql,Tsql,我见过几个类似的问题,但没有一个和我的完全一样。T-SQL的上帝应该能够回答这是一个闪光 来自HRMS系统提要的员工和部门代码的源表(提要)。我的SQL Server数据库中有一个employees表和一个departments表。我需要有一个存储过程,它将首先在feeder表中获得部门代码的不同列表,然后检查这些代码以查看它们是否存在于departments表中。如果没有,则从feeder表插入departments表。然后,在employee表中插入 现在,我发现其中一位业务分析师在Exce
merge department as d
using feeder as f on f.code = d.code
when not matched then
insert (code)
values (f.code);
合并将起作用。由于我们只是做插入,这也将:
INSERT
department
(
departmentCode
)
SELECT departmentcode
FROM
(
SELECT
departmentcode
FROM
feeder
EXCEPT
SELECT
departmentcode
FROM
department
) c;
对于两个表中的departmentcode索引,此模式通常表现良好