表和列
UPSERT 查詢行為
在表結構模式和對映模式下,均按列配置 UPSERT 設定。右鍵單擊某列,然後從快顯功能表中選擇 UPSERT 設定。
隨即開啟 UPSERT 設定 對話方塊。預設情況下,啟用 UPSERT 設定 開關為 ON,這意味著端口會先檢查目標中是否已存在記錄,再決定執行 INSERT 還是 UPDATE。

用於確定記錄是否存在的查詢由以下部分中描述的邏輯控制。
UPSERT 開關設為開
當 啟用 UPSERT 設定 處於開啟狀態時,查詢行為取決於在 UPSERT 設定 清單中選擇的選項:UPSERT by(按單列匹配)或 Query to select UPSERT key(使用自訂查找查詢)。
按 ID 執行 UPSERT
在 UPSERT 設定 清單中選擇 UPSERT by 並選擇表的鍵列後,端口會發出查詢,以確定是否存在具有匹配鍵值的任何記錄:按非主索引鍵列執行 UPSERT
在 UPSERT 設定 清單中選擇 UPSERT by 並選擇非鍵列後,端口會發出查詢,以確定是否存在該列包含匹配值的記錄,SELECT 語句以表的主索引鍵為目標(以下範例演示向 Orders 表執行 UPSERT):如果輸入中未指定所選的 UPSERT by 列,則查詢將與 NULL 值一起使用,如以下查詢所示:
使用自定義查詢
在 UPSERT 設定 清單中選擇 Query to select UPSERT key 後,可以編寫自訂查詢來確定 UPSERT 鍵。這樣可以使用比單列匹配更複雜的邏輯來執行查找。考慮以下查詢:@OrderID 語法用於引用匹配輸入 XML 中的值。還可以使用靜態值:'Active' 周圍的引號表示該子句使用靜態值。
同樣,鍵列的成功匹配用於形成更新請求。如果沒有匹配,則插入記錄。
UPSERT 開關設為關
要對某列停用 UPSERT 行為,請開啟 UPSERT 設定 對話方塊(右鍵單擊目標列並選擇 UPSERT 設定),將 啟用 UPSERT 設定 切換為 OFF,然後單擊 套用。 停用 UPSERT 設定後,端口僅發出 INSERT 查詢。檢查輸入對映的程式碼檢視顯示表的action 屬性是 insert:
update,如以下程式碼片段所示: