> For the complete documentation index, see [llms.txt](https://docs.frends.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.frends.com/tasks/tasks/microsoft-sql-server/bulkinsert.md).

# BulkInsert

Task version: 3.3.0

Required Frends version: 5.5+

Required .NET version: 6.0

Compatible Agents: Crossplatform

Source code: <https://github.com/FrendsPlatform/Frends.MicrosoftSQL>

## Task Parameters

{% tabs %}
{% tab title="Input" %}

| Name                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 🗝ConnectionString : `String`   | <p>Connection string.</p><p><br>Default: <code>Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;</code><br>Example: <code>Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                             |
| TableName : `String`            | <p>Destination table name.</p><p><br>Default: <code>-</code><br>Example: <code>TestTable</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ColumnMapping : `ColumnMapping` | <p>Selection for column mapping operation.</p><p>Possible values:</p><ul><li><code>JsonPropertyOrder</code>: Column mapping is disabled and the bulk insert will insert the data based on the order of the properties in input JSON.</li><li><code>JsonPropertyNames</code>: Input JSON property names will be used with bulk insert to create column mapping. Column mapping is case sensitive.</li><li><code>ManualColumnMapping</code>: Manual column mapping JSON will be used with bulk insert to create column mapping. Column mapping is case sensitive.</li></ul><p><br>Default: <code>JsonPropertyOrder</code><br>Example: <code>ColumnMapping.JsonPropertyNames</code></p> |
| ManualColumnMapping : `String`  | <p>Column mapping JSON for manual column mapping.</p><p>JSON property cannot be a nested one. Only top level properties are supported.</p><p><br>Default: <code>-</code><br>Example: <code>{ "json\_property\_1": "db\_column\_1", "json\_property\_2": "db\_column\_2", "json\_property\_3": "db\_column\_3" }</code></p>                                                                                                                                                                                                                                                                                                                                                           |
| InputData : `String`            | <p>Json Array of objects. All object property names need to match with the destination table column names.</p><p><br>Default: <code>\[{"Column1":"Value1", "Column2":15},{"Column1":"Value2", "Column2":30}]</code><br>Example: <code>\[{"Column1":"Value1", "Column2":15},{"Column1":"Value2", "Column2":30}]</code></p>                                                                                                                                                                                                                                                                                                                                                            |
| {% endtab %}                    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |

{% tab title="Options" %}

| Name                                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CommandTimeoutSeconds : `Int32`                               | <p>Number of seconds for the operation to complete before it times out.</p><p><br>Default: <code>60</code><br>Example: <code>60</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| NotifyAfter : `Int32`                                         | <p>Defines the number of rows to be processed before generating a notification event.</p><p>The default value of 0 will set NotifyAfter dynamically to 10% of the total row count, with a minimum value of 1.</p><p>A value of -1 means there won't be any notifications until the task is completed.</p><p>Setting a value greater than the total number of rows can cause notification response to be 0.</p><p>Notification events can be used for error handling to see approximately which row the error occurred at.</p><p><br>Default: <code>-</code><br>Example: <code>0</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| FireTriggers : `Boolean`                                      | <p>When specified, cause the server to fire the insert triggers for the rows being inserted into the database.</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| KeepIdentity : `Boolean`                                      | <p>Preserve source identity values. When not specified, identity values are assigned by the destination.</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| TableLock : `Boolean`                                         | <p>Obtain a bulk update lock for the duration of the bulk copy operation. When not specified, row locks are used.</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| KeepNulls : `Boolean`                                         | <p>Preserve null values in the destination table regardless of the settings for default values.</p><p>When not specified, null values are replaced by default values where applicable.</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ConvertEmptyPropertyValuesToNull : `Boolean`                  | <p>If the input properties have empty values i.e. "", the values will be converted to null if this parameter is set to true.</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ThrowErrorOnFailure : `Boolean`                               | <p>(true) Throw an exception or (false) stop the Task and return result object containing Result.Success = false and Result.ErrorMessage = 'exception message'.</p><p><br>Default: <code>True</code><br>Example: <code>true</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| SqlTransactionIsolationLevel : `SqlTransactionIsolationLevel` | <p>Starts a database transaction with the specified isolation level.</p><p>Isolation evel specifies the transaction locking behavior for the connection.</p><p>None: No transaction is set up so there won't be a rollback if exception occurs.</p><p>Default: Default is configured by the SQL Server, usually ReadCommited.</p><p>ReadCommitted: (Default value in most of the SQL Servers). Shared locks are held while the data is being read to avoid dirty reads, but the data can be changed before the end of the transaction, resulting in non-repeatable reads or phantom data.</p><p>Unspecified: A different isolation level than the one specified is being used, but the level cannot be determined.</p><p>ReadUncommitted: A dirty read is possible, meaning that no shared locks are issued and no exclusive locks are honored.</p><p>RepeatableRead: Locks are placed on all data that is used in a query, preventing other users from updating the data.Prevents non-repeatable reads but phantom rows are still possible.</p><p>Serializable: A range lock is placed on the System.Data.DataSet, preventing other users from updating or inserting rows into the dataset until the transaction is complete.</p><p>Snapshot: Reduces blocking by storing a version of data that one application can read while another is modifying the same data. Indicates that from one transaction you cannot see changes made in other transactions, even if you requery.</p><p>Possible values:</p><ul><li><code>None</code>: No transaction.</li><li><code>Default</code>: Default is configured by the SQL Server, usually ReadCommited.</li><li><code>ReadUncommitted</code>: A dirty read is possible, meaning that no shared locks are issued and no exclusive locks are honored.</li><li><code>ReadCommitted</code>: Shared locks are held while the data is being read to avoid dirty reads, but the data can be changed before the end of the transaction, resulting in non-repeatable reads or phantom data.</li><li><code>RepeatableRead</code>: Locks are placed on all data that is used in a query, preventing other users from updating the data.</li></ul><p>Prevents non-repeatable reads but phantom rows are still possible.</p><ul><li><code>Serializable</code>: A range lock is placed on the System.Data.DataSet, preventing other users from updating or inserting rows into the dataset until the transaction is complete.</li><li><code>Snapshot</code>: Reduces blocking by storing a version of data that one application can read while another is modifying the same data.</li></ul><p>Indicates that from one transaction you cannot see changes made in other transactions, even if you requery.</p><ul><li><code>Unspecified</code>: A different isolation level than the one specified is being used, but the level cannot be determined.</li></ul><p><br>Default: <code>ReadCommitted</code><br>Example: <code>SqlTransactionIsolationLevel.ReadCommitted</code></p> |
| {% endtab %}                                                  |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| {% endtabs %}                                                 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |

## Task Result

| Name                    | Description                                                                                                                                                                        |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success : `Boolean`     | <p>Operation complete without errors.<br>Example: <code>true</code></p>                                                                                                            |
| Count : `Int64`         | <p>Number of processed rows. In case of failure it shows notified number of processed rows. Approximation logic is defined by Options.NotifyAfter<br>Example: <code>100</code></p> |
| ErrorMessage : `String` | <p>Error message. This value is generated when an exception occurs and Options.ThrowErrorOnFailure = false.<br>Example: <code>Login failed for user 'user'.</code></p>             |

## Task Changelog

Changelog for Task Frends.MicrosoftSQL.BulkInsert.

### \[3.3.0] - 2026-06-18

#### Changed

* In successful execution, Result.Count will show number of all rows.
* In case of failure, Result.Count will show estimated number of rows copied before the failure.

### \[3.2.0] - 2026-06-18

#### Changed

* Update documentation.

### \[3.1.0] - 2026-01-22

#### Changed

* Improve execution of async methods.

### \[3.0.0] - 2025-01-15

#### Added

* \[Breaking] Added parameters ColumnMapping and ManualColumnMapping.
* Added column mapping feature which allows user to select from JsonPropertyNames, JsonPropertyOrder and ManualColumnMapping options how the column mapping is handled in bulk insert. Default behavior will remain the same JsonPropertyOrder.

### \[2.2.0] - 2024-09-10

#### Changed

* Updated Options.NotifyAfter property to be set dynamically based on the total row count, with a minimum value of 1, ensuring rowsCopied is updated correctly.

### \[2.1.0] - 2024-08-26

#### Changed

* Updated Newtonsoft.Json to the latest version 13.0.3.

### \[2.0.0] - 2024-08-05

#### Changed

* \[Breaking] The task now uses Microsoft.Data.SqlClient instead of System.Data.SqlClient.

### \[1.1.0] - 2023-01-26

#### Added

* Options.ThrowErrorOnFailure and Result.ErrorMessage was added to let the user choose how to handle errors.

### \[1.0.0] - 2023-01-10

#### Added

* Initial implementation


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.frends.com/tasks/tasks/microsoft-sql-server/bulkinsert.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
