Erin Dempster

Erin has worked for many years with SQL Server, starting with SQL Server 7.0, and considers herself to be a "data generalist." Her skills go beyond SQL Server, having worked as a software developer many years ago, using ASP.Net and some JSP. In recent years, Erin has worked considerably with PowerShell, transitioning knowledge of .Net classes to PowerShell to make data import processes easier for her teams. Since 2021, she has taken on the role Azure DevOps administrator at Trean Corporation, in addition to her duties as a DBA and systems architect. Beyond her daily roles, Erin has spoken at many SQL Saturday events, as well as SQL Bits and multiple times at PASS Summit. For her dedication to sharing knowledge with the SQL Server community, in 2023, Microsoft recognized Erin with the Data Platform MVP Award.
  • Skills: SQL Server, Azure DevOps, SSIS/Azure Data Factory

Stairway to Database DevOps

Stairway to Database DevOps Level 4: Creating a new Azure Pipeline (with Azure SQL DB Deployment)

The first three levels of this series have been the lead-up to this level, automating the database deployment with Azure Pipelines. First, we started with an introduction to Azure DevOps and the Git client. Next, SQL Source Control was introduced to manage a database’s schema and manually deploy changes from the database to source control […]

(4)

You rated this post out of 5. Change rating

2023-12-06

2,443 reads

Stairway to Database DevOps

Stairway to Database DevOps Level 3: Managing Code as a Team in Git

In this level of the Stairway to Database DevOps, you'll get an introduction to branching and merging. Learn how to create a branch for making your changes to the codebase, submitting these in a code review, and then merging the changes into those made by other developers.

(2)

You rated this post out of 5. Change rating

2023-12-01

1,944 reads

Stairway to Database DevOps

Stairway to Database DevOps Level 2: Manage Code with Red Gate SQL Source Control

In this second level of the Stairway to Database DevOps, we learn to use Redgate's SQL Source Control to save and updates changes to objects, as well as tracking data in certain tables.

You rated this post out of 5. Change rating

2023-10-18

1,411 reads

Stairway to Database DevOps

Stairway to Database DevOps Level 1: Setup a Local Git Repo with Azure DevOps

In this first level of the Stairway to DevOps, you will learn how to get version control set up on your local machine and connect to an Azure DevOps repository.

(8)

You rated this post out of 5. Change rating

2023-10-16 (first published: )

3,059 reads

Blogs

The Book of Redgate: Profits

By

Redgate is a for-profit company. We look to make money by building and selling...

Session Materials for Techorama & DataGrillen 2026

By

I’ve uploaded the slides for my Techorama session Microsoft Fabric for Dummies and my...

Stop Using Pandas for Aggregations — Try DuckDB Instead

By

If you've ever loaded a 2 GB CSV into pandas just to run a...

Read the latest Blogs

Forums

Even When You Know What You're Doing, You Can Screw Up

By Grant Fritchey

Comments posted to this topic are about the item Even When You Know What...

The New Software Team

By Steve Jones - SSC Editor

Comments posted to this topic are about the item The New Software Team

Database Mail in SQL Server 2022

By Abdellateef Ibrahim

Comments posted to this topic are about the item Database Mail in SQL Server...

Visit the forum

Question of the Day

The string_agg function

We create the following table and then insert some records in it:

create table t1 (
   id int primary key,
   category char(1) not null,
   product varchar(50)
);

insert into t1 values
(1, 'A', 'Product 1'),
(2, 'A', 'Product 2'),
(3, 'A', 'Product 3'),
(4, 'B', 'Product 4'),
(5, 'B', 'Product 5');
What happens if we execute the following query in both Sql Server and PostgreSQL?
select id, 
category, 
string_agg(product, ';')
                 over (partition by category order by id
                 rows between unbounded preceding and unbounded following) as stragg
from t1;

See possible answers