deployment

Stairway icons Database Deployments

Defining the Deployment Contract: Stairway to Reliable Database Deployments Level 2

  • Stairway Step

Level 2 formalizes the behavioral guarantees that a changeset must provide in order to be safely deployed and rolled back. It introduces the deployment contract, checkpoint semantics, and the structural scope of Create and Rollback scripts. Data changes are addressed through a dedicated Update mechanism, with clear boundaries and limitations. By the end of this level, a changeset becomes a predictable and well-defined unit that can be reasoned about independently of execution context.

★ ★ ★ ★ ★ ★ ★ ★ ★ ★

You rated this post out of 5. Change rating

2026-05-06

1,280 reads

Stairway icons Database Deployments

Designing Database Changes Before Deployment: Stairway to Reliable Database Deployments Level 1

  • Stairway Step

Stairway to Reliable Database Deployments introduces a progressive approach to managing database changes with clear intent, predictable rollback, and explicit behavioral guarantees. Starting from change design and moving toward execution and coordination in complex environments, the Stairway provides a conceptual framework for deploying database changes safely and consistently, independent of specific tools or automation platforms.

★ ★ ★ ★ ★ ★ ★ ★ ★ ★

(1)

You rated this post out of 5. Change rating

2026-04-15

2,012 reads

External Article

Database Lifecycle Management: Deployment and Release

  • Article

So often, the unexpected delays in delivering database code are more likely to happen after the developers initiate the release process. The necessary checks and tests can turn up surprises: The handover process can expose deficiencies. With good teamwork, planning and forethought, though, the process can be made almost painless.

2016-08-05

4,063 reads

External Article

Database Deployment: The Bits - Agent Jobs and Other Server Objects

  • Article

Databases often need more than just the database objects to run. There may be certain server objects and components, and SQL Agent objects, that are required as well. For an automated deployment, these need to be identified and their build script placed in source control. They then need to be deployed via the pre, or post deployment script. Phil spells out how and why.

2013-05-29

2,424 reads

External Article

Database Deployment Challenges

  • Article

There are a number of challenges that make the deployment task more difficult. Alex reviews the common techniques for deploying new databases and upgrading existing ones, and their flaws, and argues the advantages of an automated, incremental, script-based approach to deployments.

2013-03-18

3,067 reads

Blogs

Prep data for AI vs. Fabric Data Agent Instructions: What Goes Where?

By

Making Data AI-Ready, Part 3 (This is the final article in a three-part series...

Keeping Track of my ConEmu CLIs

By

I use ConEmu for my terminal interface. I’m still on Windows 10 at home,...

10 Decisions to Make Before You Create A Fabric Workspace

By

Creating a Fabric workspace takes about 30 seconds. Restructuring workspaces after people have built...

Read the latest Blogs

Forums

Adding new column with DEFAULT II

By Thomas Franz

Comments posted to this topic are about the item Adding new column with DEFAULT...

Advanced Deployment Scenarios: Stairway to Reliable Database Deployments Level 7

By Massimo Preitano

Comments posted to this topic are about the item Advanced Deployment Scenarios: Stairway to...

You Need a DBA Pipeline

By Steve Jones - SSC Editor

Comments posted to this topic are about the item You Need a DBA Pipeline

Visit the forum

Question of the Day

Adding new column with DEFAULT II

Which number did the two COUNT(*) return:

DROP TABLE IF EXISTS #tmp
CREATE TABLE #tmp (id INT NOT NULL)

INSERT INTO #tmp (id) 
SELECT gs.value
  FROM GENERATE_SERIES(1, 5) AS gs

ALTER TABLE #tmp ADD my_value INT NOT NULL CONSTRAINT df_tmp_my_value DEFAULT 1

SELECT COUNT(*)  FROM #tmp AS t WHERE my_value = 1

ALTER TABLE #tmp DROP CONSTRAINT df_tmp_my_value

ALTER TABLE #tmp ADD CONSTRAINT df_tmp_my_value DEFAULT 2 FOR my_value

SELECT COUNT(*)  FROM #tmp AS t WHERE my_value = 1

See possible answers