SQL-SQL语句已被终止,如果一行插入不正确

vin*_*ine 0 sql sql-server bulkinsert sql-insert

我正在尝试使用如下查询将数百行插入表中:

Insert INTO tableX (column1, colum2)
VALUES 
((SELECT sysID FROM tableY where ID = var1), 1)
((SELECT sysID FROM tableY where ID = var2), 1)
et cetera
Run Code Online (Sandbox Code Playgroud)

现在让我们说var88不存在,它将返回NULL作为sysID,但是我不能在column1中插入NULL,所以我得到一个错误,整个插入查询将被终止.有没有办法取消整个终止,只是跳过sysID = NULL的行?我确信我可以通过首先进行正确的选择,过滤掉NULL行然后插入,然后我想知道是否还有其他方法来做到这一点.

Seb*_*sch 5

您可以使用以下代码INSERT INTO SELECT:

INSERT INTO tableX (column1, colum2) 
    SELECT sysID, 1 
    FROM tableY 
    WHERE ID IN (va1, var2) AND NOT sysID IS NULL
Run Code Online (Sandbox Code Playgroud)