# Run Command

> `UiPath.Database.Activities.ExecuteNonQuery`

`UiPath.Database.Activities.ExecuteNonQuery`

## Description

Executes an SQL statement on a database. For `UPDATE`, `INSERT`, and `DELETE` statements, the return value is the number of rows affected by the command. For all other types of statements, the return value is -1.

## Project compatibility

**Windows - Legacy** | **Windows** | **Cross-platform**

## Windows - Legacy, Windows configuration

### Designer panel

* **Configure Connection...** - Select an existing database connection or add a new one using the **Connection Wizard**.
* **SQL command** - An SQL command to be executed. This field must be completed according to the selection from the **Command type** property. This field supports only `String` variables.

### Properties panel

#### Common
* **Continue on error** - Specifies if the automation should continue even when the activity throws an error. This field only supports `Boolean` values (**True**, **False**). The default value is **False**. As a result, if the field is blank and an error is thrown, the execution of the project stops. If the value is set to **True**, the execution of the project continues regardless of any error.
  :::note
  If this activity is included in **Try Catch** and the value of the **Continue on error** property is True, no error is caught when the project is executed.
  :::
* **DisplayName** - The display name of the activity. This field supports only `String` variables.
* **Timeout** - Specifies the amount of time (in millisecond) to wait for the SQL command to run before an error is thrown. The default value is 30000 milliseconds (30 seconds) and must be greater than or equal to 0. This field supports only `Int32` variables.
  :::note
  The amount of time specified in this field does not include the response time for the query result retrieval. This means the total execution time of the activity may be greater than the actual query execution time, which the **TimeoutMS** property applies to.
  :::

#### Connection Configuration
* **Connection string** - The connection string used to establish a database connection. This field supports only `String` variables.
* **Existing connection** - An already open database connection. If such a connection is provided, the ConnectionString and SecureConnectionString properties are ignored. This field supports only `DatabaseConnection` variables.
* **Provider name** - The name of the database provider used to access the database. This field supports only `String` variables.
* **Secure connection string** - The connection string used to establish a database connection as Secure String. This field supports only `SecureString` variables.

#### Input
* **Parameters** - A dictionary of named parameters that are bound to the SQL command. The binding is done by specifying the `@parameterName` statement in the SQL command. At runtime the parameterName is replaced with its value from the dictionary.
* **SQL command** - An SQL command to be executed. This field must be completed according to the selection from the **Command type** property. This field supports only `String` variables.

#### Misc
* **Command type** - Specifies how a command string is interpreted. The following options are available:
  + **Text** - Executes the query given in the SQL parameter.
  + **StoredProcedure** - Invokes the procedure name specified in the SQL parameter.
  + **TableDirect** - Invokes all records from a table.
* **Private** - If selected, the values of variables and arguments are no longer logged at Verbose level.

#### Output
* **Affected rows count** - The result of the execution of the SQL command. For `UPDATE`, `INSERT`, and `DELETE` statements, the return value is the number of rows affected by the command. For all other types of statements, the return value is -1. This field supports only `Int32` variables.

## Cross-platform configuration

* **Existing connection** - An already opened database connection obtained from the Connect to database activity.
* **Command type** - Specifies how a command string is interpreted. The following options are available:
  + **Text** - Executes the SQL command.
  + **Stored Procedure** - Invokes the procedure name specified in the SQL command.
  + **Table Direct** - Invokes all records from a table.
* **SQL command** - An SQL command to be executed. This property must be completed according to the selection from the **Command type** property.

### Advanced options

#### Other
* **Parameters** - A dictionary of named parameters that are bound to the SQL command. The binding is done by specifying the `@parameterName` statement in the SQL command. At runtime, the parameterName is replaced with its value form the dictionary.
* **Timeout** - Specifies the amount of time (in milliseconds) to wait for the activity to perform the task before an error is thrown. The default value is 30000 milliseconds (30 seconds). The timeout value must be greater than or equal to 0.
* **Continue on error** - Specifies if the automation should continue even when the activity throws an error.

#### Output
* **Affected rows count** - The result of the execution of the SQL command.
