ADO.NET Provider for Dynamics 365 Finance and Operations

Build 21.0.7930

INSERT Statements

To create new records, use INSERT statements.

INSERT Syntax

The INSERT statement specifies the columns to be inserted and the new column values. You can specify the column values in a comma-separated list in the VALUES clause, as shown in the following example:

INSERT INTO <table_name> 
( <column_reference> [ , ... ] )
VALUES 
( { <expression> | NULL } [ , ... ] ) 
  

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

You can use the ExecuteNonQuery method to execute data manipulation commands and retrieve the rows affected, as shown in the following example:

C#

String connectionString = "InitiateOAuth=GETANDREFRESH;OrganizationUrl=https://myaccount.operations.dynamics.com/;";
using (D365FinOpConnection connection = new D365FinOpConnection(connectionString)) {
  int rowsAffected;
  D365FinOpCommand cmd = new D365FinOpCommand("INSERT INTO Accounts (Name) VALUES ('John')", connection);
  rowsAffected = cmd.ExecuteNonQuery();
}

VB.NET

Dim connectionString As [String] = "InitiateOAuth=GETANDREFRESH;OrganizationUrl=https://myaccount.operations.dynamics.com/;"
Using connection As New D365FinOpConnection(connectionString)
  Dim rowsAffected As Integer
  Dim cmd As New D365FinOpCommand("INSERT INTO Accounts (Name) VALUES ('John')", connection)
  rowsAffected = cmd.ExecuteNonQuery()
End Using

Retrieving Generated Ids

In order to retrieve the AccountId of the last inserted record, use the SCOPE_IDENTITY function, as shown in the following example:

C#

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

VB.NET

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

Copyright (c) 2021 CData Software, Inc. - All rights reserved.
Build 21.0.7930