ExecuteQuery
Execute MSSQL query.
Task version: 2.3.0
Required Frends version: 5.5+
Required .NET version: 6.0
Compatible Agents: Crossplatform
Task Parameters
🗝ConnectionString : String
Connection string.
Default: Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
Example: Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
Query : String
Query to be executed in string format.
Supports SELECT, INSERT, UPDATE and DELETE statements.
Default: -
Example: "SELECT * FROM MyTable", "INSERT INTO MyTable (id, first_name, last_name) VALUES (:id, :first_name, :last_name)",
Parameters : QueryParameter[]
Parameters for the database query.
Default: -
Example: [ { Name = "id", Value = 1, DataType = SqlDataTypes.Auto }, { Name = "first_name", Value = "John", DataType = SqlDataTypes.NVarChar }, { Name = "last_name", Value = "Doe", DataType = SqlDataTypes.NVarChar } ]
ExecuteType : ExecuteTypes
Specifies how a command string is interpreted.
Auto: ExecuteReader for SELECT-query and NonQuery for UPDATE, INSERT, or DELETE statements.
ExecuteReader: Use this operation to execute any arbitrary SQL statements in SQL Server if you want the result set to be returned.
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.
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.
Possible values:
Auto: ExecuteReader for SELECT-query and NonQuery for UPDATE, INSERT, or DELETE statements.NonQuery: Executes a Transact-SQL statement against the connection and returns the number of rows affected.Scalar: 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.ExecuteReader: Executes the query, and returns an object that can iterate over the entire result set.
Default: ExecuteReader
Example: ExecuteType.ExecuteReader
ThrowErrorOnFailure : Boolean
(true) Throw an exception or (false) stop the Task and return result object containing Result.Success = false and Result.ErrorMessage = 'exception message'.
Default: True
Example: true
CommandTimeoutSeconds : Int32
Number of seconds for the operation to complete before it times out.
Default: 60
Example: 60
SqlTransactionIsolationLevel : SqlTransactionIsolationLevel
Starts a database transaction with the specified isolation level.
Isolation evel specifies the transaction locking behavior for the connection.
None: No transaction is set up so there won't be a rollback if exception occurs.
Default: Default is configured by the SQL Server, usually ReadCommited.
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.
Unspecified: A different isolation level than the one specified is being used, but the level cannot be determined.
ReadUncommitted: A dirty read is possible, meaning that no shared locks are issued and no exclusive locks are honored.
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.
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.
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.
Possible values:
None: No transaction.Default: Default is configured by the SQL Server, usually ReadCommited.ReadUncommitted: A dirty read is possible, meaning that no shared locks are issued and no exclusive locks are honored.ReadCommitted: 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.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.
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.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.
Unspecified: A different isolation level than the one specified is being used, but the level cannot be determined.
Default: ReadCommitted
Example: SqlTransactionIsolationLevel.ReadCommitted
Task Result
Success : Boolean
Operation complete without errors.
Example: true
RecordsAffected : Int32
Records affected. Some statements will return -1. See documentation of Input.ExecuteType for more information.
Example: 100
ErrorMessage : String
Error message. This value is generated when an exception occurs and Options.ThrowErrorOnFailure = false.
Example: Login failed for user 'user'.
Data : Object
Query result as JToken.
Example: Input.ExecuteType = ExecuteReader: [{"ID": "1","FIRST_NAME": "Saija","LAST_NAME": "Saijalainen","START_DATE": ""}], Input.ExecuteType = NonQuery: {{ "AffectedRows": -1 }}, Input.ExecuteType = Scalar: {{ "Value": 1 }}
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
Last updated
Was this helpful?

