ADO.NET Provider for Salesforce

Build 26.0.9770

UPSERT ステートメント

UPSERT ステートメントは、既存のレコードを更新するか、既存のレコードが識別されない場合は新しいレコードを作成します。

Upsert の設定

Upsert は、Salesforce で明示的に外部キーになるように定義されたフィールドでのみ実行できます。次のクエリで示すように、ExternalIdColumn というカラムにこのフィールドの名前を指定する必要があります。
  UPSERT INTO Lead (FirstName, LastName, Company, External_Id_Column__c, ExternalIdColumn)
  VALUES ('Bob', 'Thorton', 'Universal Pictures', 12345, 'External_Id_Column__c')

ExternalIdColumn を表示させるには、Salesforce の接続プロパティを変更して、PseudoColumns フィールドを引用符なしの値'*=*' に設定します。

UPSERT ステートメントは、既存のレコードを更新するか、既存のレコードが識別されない場合は新しいレコードを作成します。

UPSERT 構文

UPSERT 構文は挿入の構文と同じです。Salesforce はVALUES 句で指定された入力を使用して、レコードがすでに存在するかどうかを判断します。レコードが存在しない場合は、レコードの挿入に必要なすべてのカラムが指定される必要があります。テーブル固有の情報については、データモデル を参照してください。
UPSERT INTO <table_name>
( <column_reference> [ , ... ] )
VALUES
( { <expression> | NULL } [ , ... ] )


<expression> ::=
  | @ <parameter>
  | ?
  | <literal>

次の例に示すように、ExecuteNonQuery メソッドを使って、データ操作コマンドを実行し影響を受けた行を取得できます。

C#

String connectionString = "AuthScheme=OAuthPKCE;InitiateOAuth=GETANDREFRESH;";
int rowsAffected;
using (SalesforceConnection connection = new SalesforceConnection(connectionString)) {
  SalesforceCommand cmd = new SalesforceCommand("UPSERT INTO Account (Name) VALUES ('John')", connection);
  rowsAffected = cmd.ExecuteNonQuery();
}

VB.NET

Dim connectionString As [String] = "AuthScheme=OAuthPKCE;InitiateOAuth=GETANDREFRESH;"
Dim rowsAffected As [Integer]
Using connection As New SalesforceConnection(connectionString)
  Dim cmd As New SalesforceCommand("UPSERT INTO Account (Name) VALUES ('John')", connection)
  rowsAffected = cmd.ExecuteNonQuery()
End Using

生成されたId の取得

次の例に示すように、最後に挿入されたレコードのId を取得するには、SCOPE_IDENTITY 関数を使用します。

C#

  cmd = connection.CreateCommand();
  cmd.CommandText = "SELECT SCOPE_IDENTITY()";
  Object returnedValues = cmd.ExecuteScalar();
  String Id = (String)returnedValues;

  cmd = connection.CreateCommand()
  cmd.CommandText = "SELECT SCOPE_IDENTITY()"
  Dim returnedValues As [Object] = cmd.ExecuteScalar()
  Dim Id As [String] = returnedValues

Copyright (c) 2026 CData Software, Inc. - All rights reserved.
Build 26.0.9770