> 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/executequery.md).

# ExecuteQuery

Execute MSSQL query.

Task version: 2.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>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Query : `String`                | <p>Query to be executed in string format.</p><p>Supports SELECT, INSERT, UPDATE and DELETE statements.</p><p><br>Default: <code>-</code><br>Example: <code>"SELECT \* FROM MyTable", "INSERT INTO MyTable (id, first\_name, last\_name) VALUES (:id, :first\_name, :last\_name)",</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Parameters : `QueryParameter[]` | <p>Parameters for the database query.</p><p><br>Default: <code>-</code><br>Example: <code>\[ { Name = "id", Value = 1, DataType = SqlDataTypes.Auto }, { Name = "first\_name", Value = "John", DataType = SqlDataTypes.NVarChar }, { Name = "last\_name", Value = "Doe", DataType = SqlDataTypes.NVarChar } ]</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ExecuteType : `ExecuteTypes`    | <p>Specifies how a command string is interpreted.</p><p>Auto: ExecuteReader for SELECT-query and NonQuery for UPDATE, INSERT, or DELETE statements.</p><p>ExecuteReader: Use this operation to execute any arbitrary SQL statements in SQL Server if you want the result set to be returned.</p><p>NonQuery: Use this operation to execute any arbitrary SQL statements in SQL Server if you do not want any result set to be returned. You can use this operation to create database objects or change data in a database by executing UPDATE, INSERT, or DELETE statements. The return value of this operation is of Int32 data type, and For the UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the SQL statement. For all other types of statements, the return value is -1.</p><p>Scalar: Use this operation to execute any arbitrary SQL statements in SQL Server to return a single value. This operation returns the value only in the first column of the first row in the result set returned by the SQL statement.</p><p>Possible values:</p><ul><li><code>Auto</code>: ExecuteReader for SELECT-query and NonQuery for UPDATE, INSERT, or DELETE statements.</li><li><code>NonQuery</code>: Executes a Transact-SQL statement against the connection and returns the number of rows affected.</li><li><code>Scalar</code>: Executes the query, and returns the first column of the first row in the result set returned by the query. Additional columns or rows are ignored.</li><li><code>ExecuteReader</code>: Executes the query, and returns an object that can iterate over the entire result set.</li></ul><p><br>Default: <code>ExecuteReader</code><br>Example: <code>ExecuteType.ExecuteReader</code></p> |
| {% endtab %}                    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |

{% tab title="Options" %}

| Name                                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 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>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 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>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 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>                                                                                                                                                                                                              |
| RecordsAffected : `Int32` | <p>Records affected. Some statements will return -1. See documentation of Input.ExecuteType for more information.<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>                                                                                                               |
| Data : `Object`           | <p>Query result as JToken.<br>Example: <code>Input.ExecuteType = ExecuteReader: \[{"ID": "1","FIRST\_NAME": "Saija","LAST\_NAME": "Saijalainen","START\_DATE": ""}], Input.ExecuteType = NonQuery: {{ "AffectedRows": -1 }}, Input.ExecuteType = Scalar: {{ "Value": 1 }}</code></p> |

## Task Changelog

Changelog for Task Frends.MicrosoftSQL.ExecuteQuery.

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

#### Changed

* Improve execution of async methods.

### \[2.2.0] - 2024-11-26

#### Added

* Added method to form JToken from the SqlDataReader so that SqlGeography and SqlGeometry typed objects can be handled.
* Fixed how Scalar handles the data so that SqlGeography and SqlGeometry typed objects can be handled.
* Added Microsoft.SqlServer.Types version 160.1000.6 as dependency.

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

#### Fixed

* Fixed how null values are handled by setting them as DBNull.Value.
* Fixed how JValue parameters are handled by adding a check for those values and assigning ToString() method on the values.

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

#### Changed

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

### \[1.2.1] - 2024-03-01

#### Changed

* Removed finally block from the Task so that the SQLConnection pool is not touched after every call to the ExecuteQuery method.

#### Updated

* Newtonsoft.Json to version 13.0.3
* System.Data.SqlClient to version 4.8.6

### \[1.2.0] - 2023-11-30

#### Changed

* \[Breaking] QueryParameter.Value type to object so that binary data can be used.

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

#### Changed

* Naming: Result.QueryResult to Result.Data.

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

#### 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/executequery.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.
