Azure SQL - Execute
Overview
The Azure SQL - Execute Snap executes simple DML (SELECT, INSERT, UPDATE, DELETE) type statements.
This Snap works only with single queries. For the comprehensive scripting functionality offered by the various databases, we recommend you use the stored procedure functionality offered by their chosen database in the Stored Procedure Snap.

- This is a Write-type Snap.
Works in Ultra Tasks
Supported Accounts
Prerequisites
- Valid Azure SQL Account.
- Access to Azure SQL and the required permissions to execute T-SQL queries.
Supported versions
This Snap supports SQL Server 2008 or higher version.
Limitations
- When the SQL statement property is an expression, the pipeline parameters are shown in the suggestions list, but not the input schema.
Behavior changes
- In 4.26, when the stored procedures were called using the Database Execute Snaps, the queries were treated as write queries instead of read queries. So the output displayed message and status keys after executing the stored procedure. In 4.27, all the Database Execute Snaps run stored procedures correctly, that is, the queries are treated as read queries. The output now displays message key, and OUT params of the procedure (if any). The status key is not displayed.
- If the stored procedure has no OUT parameters then only the message key is displayed with value success.
Snap views
| Type | Description | Examples of upstream and downstream Snaps |
|---|---|---|
| Input |
This Snap has at most one document input view. The dynamic variables used in the execute query can be defined by providing values upstream. If the input view is defined, then the where clause substitutes incoming values for a specific query. |
|
| Output |
This Snap has at most one document output view. The Snap produces documents in the output view. Database Write Snaps output all records of a batch (as configured in your account settings) to the error view if the write fails during batch processing. |
|
| Learn more about Error handling. | ||
Examples
- Azure SQL - Execute Snap as a Standalone Pipeline: This example demonstrates how the Azure SQL - Execute Snap functions as a standalone Snap in a pipeline.
- Typical Snap Configurations (Azure SQL Execute): This example demonstrates the key configuration for passing SQL statements to the Azure SQL - Execute Snap.
- Extract, Transform, Load: This example demonstrates a broader business logic involving ETL transformations that shows how, in an enterprise environment, the Execute Snap functionality is used.
Snap settings
| Field/Field set | Description |
|---|---|
Label
String |
Required. Specify a unique name for the Snap. Modify this to be more appropriate, especially if more than one of the same Snaps is in the pipeline. Default value: Azure SQL - Execute Example: Azure SQL - Execute |
SQL statement*
String/Expression |
Required. Specify the SQL statement to execute on the
server. When working with SQL statements in SnapLogic, you may encounter two
possible scenarios. Learn more about scenarios to execute your SQL statements. Note:
CAUTION:
Default value: N/A Example:
|
Query type
Dropdown list/Expression |
Select the type of query for your SQL statement (Read or Write).
When Auto is selected, the Snap tries to determine the query type automatically. If the execution result of the query is not as expected, you can change the query type to Read or Write. Default value: Auto Example: Read |
Pass through
Checkbox |
Select this checkbox to pass the input document to the output view under the key 'original'. This property applies only to the Execute Snaps with SELECT statement.
Default value: Selected |
Ignore empty result
Checkbox |
Select this checkbox if you want the Snap to ignore empty fields and not write any document to the output view when a SELECT operation does not produce any result. If this property is not selected and the Pass through property is selected, the input document will be passed through to the output view.
Default value: Deselected |
Number of Retries
Integer/Expression |
Specify the maximum number of retry attempts the Snap must make in case of
network failure. When you set the Number of retries to more than 0, the Snap generates duplicate records when the connection is not established. To prevent duplicate records, we recommend that you follow one of the following:
Default value: 0 Example: 3 |
Retry Interval (Seconds)
Integer/Expression |
Specify the time interval between two successive retry requests. A retry
happens only when the previous attempt resulted in an exception. Default value: 1 Example: 10 |
Auto commit
Dropdown list |
Select one of the options for this property to override the state of the
Auto commit property on the account. The Auto commit at the
Snap-level has three values: True, False, and Use account
setting. The expected functionality for these modes are:
Note:
'Auto commit' may be enabled for certain use cases if PostgreSQL JDBC driver is used in either Redshift, PostgreSQL or Generic JDBC Snap. But the JDBC driver may cause out of memory issues when Select statements are executed. In those cases, "Auto commit" in Snap property should be set to 'False' and the Fetch size in the "Account setting" can be increased for optimal performance. Important: DDL queries used in the Database Execute Snap will be
committed by the Database itself, regardless of the Auto-commit setting.
When Auto commit is set to false for the DML queries, the commit is
called at the end of the Snap's execution. The Auto commit needs to be
true in a scenario where the downstream Snap does depend on the data
processed on an Upstream Database Execute Snap containing a DML query. When the
Auto commit is set to the Use account setting on the Snap, the
account level commit needs to be enabled. Default value: Use account setting Example: True |
Snap execution
Dropdown list |
Choose one of the three modes in
which the Snap executes. Available options are:
|
Additional information
Scenarios to successfully execute your SQL statements
Scenario 1: Executing SQL statements without expressions.
- The SQL statement must not be within quotes.
- The $<variable_name> parts of the SQL statement are expressions. In the example, $id and $book.
Examples:
email = '[email protected]'oremail = $emailemp=$emp
Additionally, the JSON path is allowed only in the WHERE clause. If the SQL statement starts with SELECT (case-insensitive), the Snap regards it as a select-type query and executes once per input document. If not, it regards it as write-type query and executes in batch mode.
Scenario 2: Executing SQL queries with expressions.
- The SQL statement must be within quotes.
- The + $<variable_name> + parts of the SQL statement are expressions, and must not be within quotes. In the example, $tablename.
- The $<variable_name> parts of the SQL statement are bind parameter, and must be within quotes. In the example, $id and $book.
Examples:
"EMPNO=$EMPNO and ENAME=$EMPNAME""emp='" + $emp + "'""EMPNO=" + $EMPNO + " and ENAME='" + $EMPNAME+ "'"
- The non-expression form uses bind parameters, so it is much faster than executing N arbitrary SQL expressions.
- Using expressions that join strings together to create SQL queries or conditions has a potential SQL injection risk and hence unsafe. Ensure that you understand all implications and risks involved before using concatenation of strings with '=' Expression enabled.
- The '$' sign and identifier characters, such as double quotes ("), single quotes ('), or back quotes (`), are reserved characters and should not be used in comments or for purposes other than their originally intended purpose.
Single quotes in values must be escaped
Any relational database (RDBMS) treats single quotes (') as special symbols. So, single quotes in the data or values passed through a DML query may cause the Snap to fail when the query is executed. Ensure that you pass two consecutive single quotes in place of one within these values to escape the single quote through these queries.
For example:
| If String | To pass this value | Use |
|---|---|---|
| Has no single quotes | Schaum Series | 'Schaum Series' |
| Contains single quotes | O'Reilly's Publication | 'O''Reilly''s Publication' |