Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

On this Page

Table of Contents
maxLevel2
excludeOlder Versions|Additional Resources|Related Links|Related Information

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.

Note

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:

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


Query:

Code Block
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.

Note

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.

Note

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.

Multiexcerpt include macro
nameOriginal structure_for_primary_key
pageOracle - Update

Note

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:

Multiexcerpt include macro
nameME_DB_Snaps_Query_Examples
pageOracle - Update

Multiexcerpt include macro
nameSnap Execution
pageSOAP Execute

Multiexcerpt include macro
nameExecution_Detail_Write
pageSOAP Execute


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.   

  Image Modified


  • 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

Multiexcerpt include macro
namedownload_instructions
pageOpenAPI

Attachments
uploadfalse
oldfalse
patterns*slp, *zip,

Insert excerpt
Azure SQL Snap Pack
Azure SQL Snap Pack
nopaneltrue

...