Azure SQL - Update

On this Page

Snap type:Write
Description:

This Snap executes a SQL update using the input document. Keys from the document will be used as the columns to update and their values will be the updated value in the column.

While trying to access a column name that contains specific characters as supported by Azure SQL such as $, #, @ etc., such field names should be enclosed in the square brackets.


ETL Transformations & Data Flow

This Snap enables the following ETL operations/flows:

  1. Load data in an Azure SQL table

Input & Output

  • InputThis Snap must have an upstream Snap that can passes documents to its output view. The documents are the data that is used in the SQL update.

  • Output: The Snap can have a downstream Snap. This snap writes a document to the output view summarizing each update execution.
Prerequisites:

This Snap supports SQL Server 2008 or newer.


Limitations and Known Issues:

Works in Ultra Task Pipelines.
Configurations:

Account & Access

This Snap uses account references created on the Accounts page of SnapLogic Manager to handle access to this endpoint. See Azure SQL Account for information on setting up this type of account.

Views

Input

This Snap has exactly one document input view. The input document is used to build the update query. Below is an example for how an input document is translated to a query.

Input document:

{
    "Color": "blue",
    "ListPrice": 7.22
}


Query:

update "Database"."Table"
set [ListPrice] = 7.22, 
    [Color] = 'blue'
Output

This Snap has at most one output view and produces documents in the view. The output fields of a single view are:

  • message - the summary of the query outcome
  • status - for successful queries the number of rows updated and for failed queries the error code
  • original - the input document

ErrorThis Snap has at most one document error view and produces zero or more documents in the view.
Troubleshooting:

The section describes typical issues you may encounter while using this Snap, and instructions on how to workaround them:

  • Issue: A Snap with an update condition such as "Name = username" fails with error "Invalid column name 'username'.".

    Solution: The issue is that the string value specified in the update condition, username, must be quoted with single quotations. The proper update condition in this example is "Name = 'username'".


Settings

Label


Required. The name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your pipeline.

Schema Name


This is the name of the Azure SQL database that includes the table that will be updated. If this is not specified then the Table Name should be fully qualified with the database name. Optionally, the value can use double quotation marks as an identifier.

The values can be passed using the pipeline parameters but not the upstream parameter.

Example: SalesData

Example: "SalesData"

Table Name


Required. This is the table that will be updated. It can be specified as the table name only if the Schema Name is defined. Otherwise, it can be specified as a fully qualified name "Database"."Table". Optionally, the value can use double quotation marks as an identifier.

The values can be passed using the pipeline parameters but not the upstream parameter.

Example: ProductInfo

Example: "SalesData"."ProductInfo"

Update Condition


This defines the WHERE clause used in the query. This filters the rows that the update is applied to.

Instead of building multiple Snaps with inter dependent DML queries, it is recommended to use the Stored Procedure or the Multi Execute Snap.
In a scenario where the downstream Snap does depends on the data processed on an Upstream Database Bulk Load Snap, use the Script Snap to add delay for the data to be available.

Examples:

Without using expressions

  • email = 'you@example.com' or email = $email 
  • emp=$emp

Using expressions

  • "EMPNO=$EMPNO and ENAME=$EMPNAME"
  • "emp='" + $emp + "'"
  • "EMPNO=" + $EMPNO + " and ENAME='" + $EMPNAME+ "'"

Caution

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. 

Snap Execution

Select one of the three modes in which the Snap executes. Available options are:

  • Validate & Execute: Performs limited execution of the Snap, and generates a data preview during Pipeline validation. Subsequently, performs full execution of the Snap (unlimited records) during Pipeline runtime.
  • Execute only: Performs full execution of the Snap during Pipeline execution without generating preview data.
  • Disabled: Disables the Snap and all Snaps that are downstream from it.

Typical Snap Configurations

The key Snap configurations:

  • Without Expressions

 In the below pipleine, the Snap updates the table, "dbo"."AV_EMP"  with the given condition, EMPID = 500.   

  


  • With Expressions
    • Upstream
    • Pipeline Parameters

In the below pipeline, the Update Snap retrieves the values from the upstream as well as from the Pipeline parameters.

  

The Mapper Snap maps the values to be passed using the output schema:


The Azure SQL update Snap uses the value for the table name as passed in the pipeline parameters (_TableTo BeUsed), and the value for the update condition as passed via the upstream.

 

Advanced Use Case

The following describes a pipeline, with a broader business logic involving multiple ETL transformations, that shows how typically in an enterprise environment, Update functionality can be used. Pipeline download link below.  

This pipeline reads and moves the records from the SQL Server table to update the Azure SQL database. The records (EmployeeID, Salary, title)  from a table on the SQL Server database are moved  to the table on the Azure SQL. The Bulk Load Snap loads the table, while the Update Snap updates the values using an upstream.

 

  1. Extract: The SQL Server Snap retrives the records from a table on the SQL Server database.

  2. Transform: The Mapper Snap maps the values to be updated on the Azure SQL table.

  3. Load: The Azure SQL Bulk Load Snap loads the data into the Azure SQL database.

  4. Load: The Azure SQL Update Snap updates the table on the Azure SQL.

  5. Read: The Azure SQL Execute Sanp reads the values as updated on the table.

Downloads

Snap Pack History

 Click to view/expand
Release Snap Pack VersionDateType  Updates
4.27main12833 Stable

Enhanced the Azure SQL - Execute Snap to invoke stored procedures.

4.26main11181 StableUpgraded with the latest SnapLogic Platform release.
4.25main9554
 
StableUpgraded with the latest SnapLogic Platform release.
4.24main8556
Stable

Enhances the Azure SQL - Stored Procedure to accept parameters from input documents by column keys. If the values are empty, the parameters are populated based on the column keys for easier mapping in the upstream Mapper Snap.

4.23main7430
 
Stable

Enhances the Azure SQL - Bulk Extract Snap by adding a new check box Enable UTF-8 encoding to support UTF-8 encoded characters. This check box allows the Snap to update the BCP command to read the special characters.

4.22 Patch 422Patches6751 Latest

Enhances the Azure SQL - Bulk Extract Snap by adding a new check box Enable UTF-8 encoding to support UTF-8 encoded characters. Selected by default, this check box allows the Snap to update the BCP command to read these special characters.

4.22main6403
 
StableUpgraded with the latest SnapLogic Platform release.
4.21 Patch 421patches6272 Latest

Fixes the issue where Snowflake SCD2 Snap generates two output documents despite no changes to Cause-historization fields with DATE, TIME and TIMESTAMP Snowflake data types, and with Ignore unchanged rows field selected.

4.21 Patch 421patches6144 Latest

Fixes the following issues with DB Snaps:

  • The connection thread waits indefinitely causing the subsequent connection requests to become unresponsive.
  • Connection leaks occur during Pipeline execution.
4.21 Patch421patches5864 Latest

Adds support for UTF_8 characters with BCP (bulk copy program) command to the Azure SQL Bulk Extract Snap.

4.21 PatchMULTIPLE8841 Latest

Fixes the connection issue in Database Snaps by detecting and closing open connections after the Snap execution ends. 

4.21snapsmrc542

 

StableUpgraded with the latest SnapLogic Platform release.
4.20snapsmrc535
 
StableUpgraded with the latest SnapLogic Platform release.
4.19 Patch db/azuresql8403 Latest

Fixes an issue with the Azure SQL - Update Snap wherein the Snap is unable to perform operations when:

  • An expression is used in the Update condition property.
  • Input data contain the character '?'.
4.19snaprsmrc528
 
Stable

Enhanced the error handling in PolyBase Bulk Load Snap when writing to a data warehouse. The Snap writes a new blob in the Azure container. This new blob highlights the first invalid row that caused the bulk load operation to fail.

4.18snapsmrc523
 
StableUpgraded with the latest SnapLogic Platform release.
4.17ALL7402
 
Latest

Pushed automatic rebuild of the latest version of each Snap Pack to SnapLogic UAT and Elastic servers.

4.17snapsmrc515
 
Latest
  • Fixes an issue with the Azure SQL Execute Snap wherein the Snap would send the input document to the output view even if the Pass through field is not selected in the Snap configuration. With this fix, the Snap sends the input document to the output view, under the key original, only if you select the Pass through field. 
  • Added the Snap Execution field to all Standard-mode Snaps. In some Snaps, this field replaces the existing Execute during preview check box.
4.16 Patch db/azuresql7179 Latest

Fixes an issue with the Azure SQL Bulk Extract Snap wherein the Snap fails to process all the metadata information of the input table and schema.

4.16snapsmrc508
 
StableUpgraded with the latest SnapLogic Platform release.
4.15 Patch db/azuresql6327 Latest

Replaced Max idle time and Idle connection test period properties with Max life time and Idle Timeout properties respectively, in the Account configuration. The new properties fix the connection release issues that were occurring due to default/restricted DB Account settings.

4.15snapsmrc500
 
StableUpgraded with the latest SnapLogic Platform release.
4.14snapsmrc490
 
StableUpgraded with the latest SnapLogic Platform release.
4.13

snapsmrc486

 
StableUpgraded with the latest SnapLogic Platform release.
4.12

snapsmrc480

 
StableUpgraded with the latest SnapLogic Platform release.
4.11 Patchazuresql4631 Latest

Fixes an issue with the Azure Polybase Bulk Load Snap that failed with "Parse error" when there was no input.

4.11 Patch db/azuresql4326 Latest
  • Fixes an issue with the Azure SQL Polybase Bulk Load Snap, that allowed the Snap to load data into a table with identity columns for Azure SQL Data Warehouse instance.
  • Fixes encoding issue when using a Windows plex, and added a "Encoding" Snap property that allows user to choose input data's encoding from UTF-8 and UTF-16.
4.11snapsmrc465
 
StableUpgraded with the latest SnapLogic Platform release.
4.10

snapsmrc414

 
Stable
  • Renamed the Azure SQL Bulk Load Snap to Polybase Bulk Load as it supports Azure SQL DW and SQL Server (starting with 2016).
  • The new Snap, Azure SQL Bulk Load is developed has been developed to carry out the bulk load function extensively for Azure SQL DB. (The old Azure Bulk Load has been renamed to Polybase BulkLoad  which works for on-premise SQL Server and Azure SQL Data Warehouse with polybase functionality).
  • Azure SQL Bulk Load, Table List, Execute, Stored ProcedureAzure SQL - Table Listand Update Snaps are released in this release.
  • Added Auto commit property to the Select and Execute Snaps at the Snap level to support overriding of the Auto commit property at the Account level.
  • Added the below accounts:
    • Azure SQL Active Directory Account

    • Azure SQL Active Directory Dynamic Account

4.9 Patch azuresql3078 Latest

Fixes an issue regarding connection not closed after login failure; Expose autocommit for "Select into" statement in PostgreSQL Execute Snap and Redshift Execute Snap

4.9snapsmrc405
 
StableUpgraded with the latest SnapLogic Platform release.
4.8 Patch azuresql2750
Latest

Potential fix for JDBC deadlock issue.

4.8

snapsmrc398

 
Stable
  • Info tab added to accounts.
  • Database accounts now invalidate connection pools if account properties are modified and login attempts fail.
4.7 Patchazuresql2196 Latest

Fixes an issue for database Select Snaps regarding Limit rows not supporting an empty string from a pipeline parameter.

4.7

snapsmrc382

 
StableUpgraded with the latest SnapLogic Platform release.
4.6snapsmrc362
 
StableUpgraded with the latest SnapLogic Platform release.
4.5.1

snapsmrc344

 
StableUpgraded with the latest SnapLogic Platform release.
4.5

snapsmrc344

 StableUpgraded with the latest SnapLogic Platform release.