Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql 在整个条目上插入带有箱子的条目_Tsql_Sql Insert - Fatal编程技术网

Tsql 在整个条目上插入带有箱子的条目

Tsql 在整个条目上插入带有箱子的条目,tsql,sql-insert,Tsql,Sql Insert,我正在创建一个要运行的脚本,它将接收旧系统中的所有库存并插入到新系统中。但是,旧系统有1000个错误的零件号数据,我希望在导入时忽略这些数据 我已经尝试将整个select封装在一个case语句中,并对该主题进行迭代 这是一个相当大的数据集,因此为了简单起见,我在下面的代码中包含了重要的信息 INSERT INTO [LOT_TBL] ( Part_No Total_Stock ) --Ignore an insert if Part_No_Old NOT IN (SELE

我正在创建一个要运行的脚本,它将接收旧系统中的所有库存并插入到新系统中。但是,旧系统有1000个错误的零件号数据,我希望在导入时忽略这些数据

我已经尝试将整个select封装在一个case语句中,并对该主题进行迭代

这是一个相当大的数据集,因此为了简单起见,我在下面的代码中包含了重要的信息

INSERT INTO [LOT_TBL]
(
    Part_No   
    Total_Stock
)

--Ignore an insert if Part_No_Old NOT IN (SELECT Part_No from PART_TBL)

SELECT
    Part_No_Old
    Total_Stock
FROM OLD_ERP
WHERE Total_Stock > 0

新系统中的零件TBL有一个所有有效零件的列表,因此如果导入中的任何零件不匹配,请忽略并转到下一个零件。

您可以使用
exists
进行筛选:

insert into [lot_tbl] (part_no, total_stock)
select
    part_no_old,
    total_stock
from old_erp o
where 
    total_stock > 0
    and exists (
        select 1 from part_tbl p where p.part_no = o.part_no_old 
    )
或者,如果
零件号
零件tbl
中是唯一的,则可以使用
连接

insert into [lot_tbl] (part_no, total_stock)
select
    o.part_no_old,
    o.total_stock
from old_erp o
inner join part_tbl p on p.part_no = o.part_no_old 
where o.total_stock > 0

谢谢你,我正在努力想办法,但我需要做的只是在哪里做比较。我有时会迷路!在添加了
和exists
之后,我从~11000行减少了~4500行,比我想象的要多,但这将是事后清理的噩梦!是一个返回值而不是语句的表达式。它不像语句那样提供流控制。