SQL Server - Update

In this article

Overview

You can use this Snap to execute an SQL update with the given properties. Document keys will be used as the column update, and their values will be used as the updated column value. 

This Snap supports SQL Server 2008 or later versions. 

Updates will be batched up until the account's batch size property or until the structure of the update statement changes. An update statement will change if an incoming document contains different keys than a previous document.

Snap Type

SQL Server - Update is a Write-type Snap that executes an SQL Server update.

Prerequisites

None.

Support for Ultra Pipelines

Works in Ultra Pipelines. However, we recommend that you not use this Snap in an Ultra Pipeline. This operation is not supported for Apache Hive databases.

Known Issues & Limitations

None.

Snap Views

Type

Format

Number of views

Examples of Upstream and Downstream Snaps

Description

Type

Format

Number of views

Examples of Upstream and Downstream Snaps

Description

Input 

Document

 

  • Min: 1

  • Max: 1

  • Mapper

  • Sequence

This Snap has exactly one document input view.

Output

Document

  • Min: 0

  • Max: 1

  • File Writer

  • Mapper

This Snap has at most one output view. If an output view is available, then the original document that was used to create the statement will be output with the status of the update executed. 

Error

Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter while running the Pipeline by choosing one of the following options from the When errors occur list under the Views tab. The available options are:

  • Stop Pipeline Execution: Stops the current pipeline execution when the Snap encounters an error.

  • Discard Error Data and Continue: Ignores the error, discards that record, and continues with the rest of the records.

  • Route Error Data to Error View: Routes the error data to an error view without stopping the Snap execution.

Learn more about Error handling in Pipelines.

Snap Settings

  • Asterisk (*): Indicates a mandatory field.

  • Suggestion icon (): Indicates a list that is dynamically populated based on the configuration.

  • Expression icon (): Indicates whether the value is an expression (if enabled) or a static value (if disabled). Learn more about Using Expressions in SnapLogic.

  • Add icon (): Indicates that you can add fields in the field set.

  • Remove icon (): Indicates that you can remove fields from the field set.

Field Name

Field Type

Description

Field Name

Field Type

Description

Label*

 

Default ValueSQL Server- Update
ExampleSQL Server - Update

 

String

Specify 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

 

Default Value: N/A
Example: "PUBLIC"

String/Expression

Specify the database schema name. In case it is not defined, then the suggestion for the Table Name will retrieve all tables names of all schemas. The property is suggestible and will retrieve available database schemas during suggest values.

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

Table Name*

 

Default Value: N/A
Example: Employee

String/Expression

Specify the name of the table in the instance. The table name is suggestible and requires an account setting.

 

Update Condition

 

Default Value: N/A
Example:

Without using expressions

  • EmpId = 12 

  • email = 'you@example.com'

Using expressions

  • "EMPNO=$EMPNO and ENAME=$EMPNAME"

  • email = $email 

  • emp=$emp

  • "emp='" + $emp + "'"

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

String/Expression

Specify the SQL WHERE clause of the update statement. You can define specific values or columns to update (Set condition) in the upstream Snap, such as Mapper Snap, and then use the WHERE clause to apply these conditions on the columns sourced from the upstream Snap. For instance, here is a sample of an Update SQL query:
UPDATE table_name
SET column1 = value1, column2 = value2,
WHERE condition;

Refer to the example to understand how to use the Update Condition.

Number of retries

 

Default Value: 0
Example: 3

Integer/Expression

Specify the maximum number of attempts to be made to receive a response. The request is terminated if the attempts do not result in a response.

Retry interval (seconds)

 

Default Value: 1
Example: 10

Integer/Expression

Specify the time interval between two successive retry requests. A retry happens only when the previous attempt resulted in an exception. 

 

Snap Execution

 

Default Value: Execute only
ExampleValidate & Execute

Dropdown list

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.

Examples

Update Data in SQL Server

This example pipeline demonstrates how to extract data, transform it and update the SQL server database.

Step 1: Configure the Mapper Snap to transform the content from the JSON data. On validation, the Snap displays the transformed output.

 

 

 

 

Step 2: Configure the SQL Server - Update Snap to update the dbo table with the specified Update Condition. This updates the city column from vizag (WHERE condition) to Hyderabad, the country column as India, and the product column as AppLE. On validation, the Snap displays a confirmation message indicating that the data was successfully updated in the database.

 

 

 

 

Example #2

In this example, we will use the well-known Northwind sample database.

Following is a selection from the "Customers" table:

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

1
 

Alfreds Futterkiste

Maria Anders

Obere Str. 57

Berlin

12209

Germany

2

Ana Trujillo Emparedados y helados

Ana Trujillo

Avda. de la Constitución 2222

México D.F.

05021

Mexico

3

Antonio Moreno Taquería

Antonio Moreno

Mataderos 2312

México D.F.

05023

Mexico

4
 

Around the Horn

Thomas Hardy

120 Hanover Sq.

London

WA1 1DP

UK

5

Berglunds snabbköp

Christina Berglund

Berguvsvägen 8

Luleå

S-958 22

Sweden
 

Assume we wish to update the customer "Alfreds Futterkiste" with a new contact person and city. 

Enter Customers in the Table name property and CustomerName='Alfreds Futterkiste' in the Update condition property. 

Assume that the Update Snap receives Map data in the input view as follows:

{ "ContactName" : "Alfred Schmidt", "City" : "Hamburg" }

When you save and execute the pipeline, the Snap internally formats a standard SQL UPDATE statement as follows:

UPDATE Customers
SET ContactName='Alfred Schmidt', City='Hamburg'
WHERE CustomerName='Alfreds Futterkiste';
 

and submit the request to the database server.
The selection from the "Customers" table will now look like this:

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

1
 

Alfreds Futterkiste

Alfred Schmidt

Obere Str. 57

Hamburg

12209

Germany

2

Ana Trujillo Emparedados y helados

Ana Trujillo

Avda. de la Constitución 2222

México D.F.

05021

Mexico

3

Antonio Moreno Taquería

Antonio Moreno

Mataderos 2312

México D.F.

05023

Mexico

4
 

Around the Horn

Thomas Hardy

120 Hanover Sq.

London

WA1 1DP

UK

5

Berglunds snabbköp

Christina Berglund

Berguvsvägen 8

Luleå

S-958 22

Sweden
 

Be careful when updating records. If we had omitted the Update condition property, in the example above, the "Customers" table would have looked like this:

CustomerID

 

CustomerName

ContactName

Address

City

PostalCode

Country

CustomerID

 

CustomerName

ContactName

Address

City

PostalCode

Country

1
 

Alfreds Futterkiste

Alfred Schmidt

Obere Str. 57

Hamburg

12209

Germany

2

Ana Trujillo Emparedados y helados

Alfred Schmidt

Avda. de la Constitución 2222

Hamburg

05021

Mexico

3

Antonio Moreno Taquería

Alfred Schmidt

Mataderos 2312

Hamburg

05023

Mexico

4
 

Around the Horn

Alfred Schmidt

120 Hanover Sq.

Hamburg

WA1 1DP

UK

5

Berglunds snabbköp

Alfred Schmidt

Berguvsvägen 8

Hamburg

S-958 22

Sweden
 

Downloads