Grab Deal : Flat 30% off on live classes + 2 free self-paced courses! - SCHEDULE CALL

Mastering INSERT and OVER DML Syntax: Interview Questions Guide

Q.1. What Does INSERT OVER DML Refer To?

Ans: The term "INSERT OVER DML" pertains to any Data Manipulation Language (DML) statement such as INSERT, UPDATE, DELETE, or MERGE that incorporates an OUTPUT clause. Instead of utilizing the OUTPUT...INTO clause directly within the DML statement, the INSERT OVER DML syntax involves wrapping the DML statement in an INSERT INTO...SELECT statement. This approach employs the changes captured by the OUTPUT clause to manage data modifications. By employing the INSERT INTO...SELECT statement and factoring in the OUTPUT changes, one can employ various WHERE clauses for a standard INSERT INTO...SELECT operation.

Q.2. Explain The Benefits of INSERT OVER DML With The Help of an Example?

Ans: To illustrate the advantages of INSERT OVER DML, let's consider an example. Imagine you are overseeing updates between two tables: Book and WeeklyChanges. The Book table holds information about book pricing and shelf locations, identified by ISBN. WeeklyChanges contains weekly updates to book data, including new publications, price adjustments, and shelf changes. Using the MERGE statement with INSERT OVER DML, you can efficiently apply these updates to the Book table while also recording changes in the BookHistory table. This approach optimizes storage by storing only meaningful changes and using a more controlled archival process.

ISBN varchar(20) PRIMARY KEY, Price decimal,
Shelf int)
CREATE TABLE WeeklyChange(
ISBN varchar(20) PRIMARY KEY,
Price decimal,
Shelf int)

Listing: Making the Book and WeeklyChange tables.

Q.3. How to Use Merge With Insert Over DML?

Ans: Implementing Merge with Insert Over DML involves enhancing the uspUpdateBooks stored procedure. This procedure utilizes the new INSERT OVER DML syntax for improved functionality. By combining MERGE and INSERT OVER DML, you can handle inserts, updates, and deletes in a single, manageable statement. This approach provides enhanced manageability, performance, and future development potential compared to traditional multi-statement methods.

Q.4. What is The Significance of The Changes Keyword While Using Merge With Insert Over DML?

Ans: The CHANGES keyword plays a crucial role in enabling the usage of INSERT OVER DML. It allows the outer INSERT INTO...SELECT statement's WHERE clause to access the OUTPUT clause's columns from the inner MERGE statement. By exposing the virtual $action through CHANGES as RowAction, you can filter and append specific actions back to the Book table. This feature facilitates complex logic and enables actions like excluding inserts and focusing on changed data, surpassing the capabilities of the OUTPUT...INTO clause.

Q.5. What is The Group By Clause?

Ans: Since the earliest T-SQL dialects, the GROUP BY clause has been a part of the SELECT statement syntax. GROUP BY allows you to write queries that conduct aggregate calculations (like SUM and AVG over the individual rows of each group) and collapse numerous rows from the same group into a single summary row. With the addition of the WITH CUBE and WITH ROLLUP operators, SQL Server 6.5 later expanded the GROUP BY clause. Similar to OLAP queries that slice and dice your data into Analysis Services cubes, these operators perform further grouping and aggregation of data in conventional relational queries without ever leaving the relational database environment.

Q.6. Create a Simple Inventory Table and Use a Group By Clause to Query The Data in The Table?

Ans: To demonstrate the usage of the GROUP BY clause, let's start with a basic inventory table, that lists the quantities of various commodities available in different colors at various stores.

CREATE TABLE Inventory (
    Store VARCHAR(50),
    Item VARCHAR(50),
    Color VARCHAR(50),
    Quantity INT

Listing- Creating the Inventory table

INSERT INTO Inventory VALUES ('NY', 'Chair', 'Blue', 123);
-- ... (other rows)

Listing:Populating the Inventory table

Now, applying a simple GROUP BY clause to query the data:

SELECT Item, Color, SUM(Quantity) AS TotalQty, COUNT(DISTINCT Store) AS Stores
FROM Inventory
GROUP BY Item, Color
ORDER BY Item, Color;

This query groups inventory records by item and color, providing a summary for each distinct combination. The TotalQty column shows the sum of quantities for each combination, and the Stores column counts the number of stores where the combination is available.

Q.7. Explain Using an Example The Use of With Rollup Clause?

Ans: The GROUP BY clause's basic functionality is demonstrated by the following query. It answers the question: "How many items per color are available in each store location?" To answer more complex queries, the WITH ROLLUP and WITH CUBE operators can be utilized. These operators enhance the outcomes of a regular GROUP BY clause by adding additional summary aggregations.

SELECT Item, Color, SUM(Quantity) AS TotalQty, COUNT(DISTINCT Store) AS Stores
FROM Inventory
ORDER BY Item, Color;

The WITH ROLLUP clause adds extra summary aggregations to the results, creating a hierarchical structure. The NULL values in the results represent rollup rows, providing higher-level summaries. The query returns rollups for chairs, sofas, tables, and more, allowing for more in-depth analysis.

Q.8. Show The Usage of With Cube Clause With The Help of an Example?

Ans: The WITH CUBE operator produces a multidimensional cube-like representation of data, enabling analysis from different dimensions. The following query demonstrates its usage:

SELECT Item, Color, SUM(Quantity) AS TotalQty, COUNT(DISTINCT Store) AS Stores
FROM Inventory
ORDER BY Item, Color;

The results include all possible combinations of dimension values, allowing you to analyze data in various dimensions simultaneously. This is useful for answering complex questions like the availability of items across different colors and stores.

Q.9. What is The Grouping Sets Operator? Show Its Uses With The Help of an Example.

Ans: Introduced in SQL Server 2008, the GROUPING SETS operator is a powerful tool for customizing grouping levels. It allows you to specify multiple grouping sets within a single query. The following query illustrates its usage:

SELECT Store, Item, Color, SUM(Quantity) AS TotalQty
FROM Inventory
ORDER BY Store, Item, Color;

This query produces customized summaries for different grouping levels, providing a versatile way to analyze data from various perspectives.

Q.10. How Can You Compose One Query That Returns Only Top-level Rollups for Certain Grouping levels and also Returns The Lower-Level Rollups and Summary Rows for Other Grouping Levels?

Ans: To achieve a query that combines both top-level and lower-level rollups, you can use a combination of GROUPING SETS, ROLLUP, and CUBE. This allows you to generate a comprehensive report that includes various levels of summaries. For example:

SELECT Store, Item, Color, SUM(Quantity) AS TotalQty
FROM Inventory
ORDER BY Store, Item, Color;

This query provides top-level rollups for the Store column and multidimensional rollups for the Item and Color columns, offering a comprehensive analysis of the data.

Q.11. How Do Distinguish Between “Real” NULL values and NULL Values Showing “ all values” in Rollup Rows?

Ans: Differentiating between "actual" NULL values and NULL values representing "all values" in rollup rows can be challenging. To address this, you can use the GROUPING function along with the CASE statement:

CASE WHEN GROUPING(Store) = 1 THEN '(all)' ELSE ISNULL(Store, '(n/a)') END AS Store,
CASE WHEN GROUPING(Item) = 1 THEN '(all)' ELSE ISNULL(Item, '(n/a)') END AS Item,
CASE WHEN GROUPING(Color) = 1 THEN '(all)' ELSE ISNULL(Color, '(n/a)') END AS Color,
SUM(Quantity) AS TotalQty

FROM Inventory
ORDER BY Store, Item, Color;

By using the GROUPING function, you can accurately differentiate between "all values" rollup and "no value" cases, providing clear and informative results.


In this guide, we've delved into the intricacies of INSERT and OVER Data Manipulation Language (DML) syntax. Armed with a deeper understanding of these concepts, you're now better equipped to navigate the world of database management. Whether you're preparing for an interview or seeking to expand your expertise, mastering these techniques will undoubtedly contribute to your success. Remember, at JanBask Training, we're committed to helping you thrive in your learning journey.

Trending Courses

Cyber Security

  • Introduction to cybersecurity
  • Cryptography and Secure Communication 
  • Cloud Computing Architectural Framework
  • Security Architectures and Models

Upcoming Class

-0 day 14 Jun 2024


  • Introduction and Software Testing
  • Software Test Life Cycle
  • Automation Testing and API Testing
  • Selenium framework development using Testing

Upcoming Class

-0 day 14 Jun 2024


  • Salesforce Configuration Introduction
  • Security & Automation Process
  • Sales & Service Cloud
  • Apex Programming, SOQL & SOSL

Upcoming Class

-0 day 14 Jun 2024

Business Analyst

  • BA & Stakeholders Overview
  • BPMN, Requirement Elicitation
  • BA Tools & Design Documents
  • Enterprise Analysis, Agile & Scrum

Upcoming Class

-0 day 14 Jun 2024

MS SQL Server

  • Introduction & Database Query
  • Programming, Indexes & System Functions
  • SSIS Package Development Procedures
  • SSRS Report Design

Upcoming Class

-0 day 14 Jun 2024

Data Science

  • Data Science Introduction
  • Hadoop and Spark Overview
  • Python & Intro to R Programming
  • Machine Learning

Upcoming Class

7 days 21 Jun 2024


  • Intro to DevOps
  • GIT and Maven
  • Jenkins & Ansible
  • Docker and Cloud Computing

Upcoming Class

1 day 15 Jun 2024


  • Architecture, HDFS & MapReduce
  • Unix Shell & Apache Pig Installation
  • HIVE Installation & User-Defined Functions
  • SQOOP & Hbase Installation

Upcoming Class

7 days 21 Jun 2024


  • Features of Python
  • Python Editors and IDEs
  • Data types and Variables
  • Python File Operation

Upcoming Class

-0 day 14 Jun 2024

Artificial Intelligence

  • Components of AI
  • Categories of Machine Learning
  • Recurrent Neural Networks
  • Recurrent Neural Networks

Upcoming Class

15 days 29 Jun 2024

Machine Learning

  • Introduction to Machine Learning & Python
  • Machine Learning: Supervised Learning
  • Machine Learning: Unsupervised Learning

Upcoming Class

28 days 12 Jul 2024


  • Introduction to Tableau Desktop
  • Data Transformation Methods
  • Configuring tableau server
  • Integration with R & Hadoop

Upcoming Class

7 days 21 Jun 2024