MERGEステートメントが必要です
request.query('MERGE [mytable] as target USING (SELECT SalesPersonID, TerritoryID FROM OPENROWSET(' +
'\'Microsoft.ACE.OLEDB.12.0\', \'Excel 12.0;Database=D:\\sample\\test\\data\\1540_OPENROWSET_Examples.xls;HDR=YES\', ' +
'\'SELECT SalesPersonID, TerritoryID FROM [SELECT_Example$]\')' +
' ) as source' +
' ON target.SalesPersonID = source.SalesPersonID' +
' WHEN MATCHED THEN UPDATE SET TerritoryID = source.TerritoryID' +
' WHEN NOT MATCHED THEN INSERT (SalesPersonID, TerritoryID) VALUES (source.SalesPersonID, source.TerritoryID);'
,function(err,recordset){
if(err) console.log(err)
TerritoryID
同じ行が既にある場合は更新しSalesPersonID
、一致する行がない場合は行を挿入しmytable
ます。
両方のフィールドで結合する必要がある場合は、これを変更します。
ON target.SalesPersonID = source.SalesPersonID
これについて:
ON target.SalesPersonID = source.SalesPersonID AND target.TerritoryID = source.TerritoryID
その後、この文字列は不要になったため削除します。
'WHEN MATCHED THEN UPDATE SET TerritoryID = source.TerritoryID' +