External Article

Strengthening the Foundations of Software Architecture

The term 'Architecture' seems to imply a plan that you can't easily subsequently deviate from. It's true that, if you abandon software architecture, you end up with a big ball of mud, but maybe the art of software is to make change much easier by planning how to implement each feature, tackling dependency issues, splitting functionality into small discrete components and considering how they should interact with each other.

External Article

Introduction to Azure SQL Database Temporal Tables

As announced on June 1, 2016, SQL Server 2016 has reached its general availability. This means that you finally have the option to implement some of its new features in the production environment. While we still have to wait for their full support in Azure SQL Database V12, it is likely that their preview stage will be concluded soon. In this article, we will focus on Temporal tables, which is one example of these new features.

Blogs

In-Person CISA Training – April 13-16, 2026

By

I will be leading an in-person Certified Information Systems Auditor (CISA) exam prep class...

EightKB 2026

By

EightKB is back again for 2026! The biggest online SQL Server internals conference is...

The FinOps Lifecycle: From Budgeting to Reporting

By

Working in DevOps long enough teaches you two universal truths: That’s exactly why I...

Read the latest Blogs

Forums

Fun with JSON II

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Fun with JSON II

Changing Data Types

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Changing Data Types

Answering Questions On Dropped Columns

By Cláudio Silva

Comments posted to this topic are about the item Answering Questions On Dropped Columns

Visit the forum

Question of the Day

Fun with JSON II

I have some data in a table:

CREATE TABLE #test_data
(
    id INT PRIMARY KEY,
    name VARCHAR(100),
    birth_date DATE
);

-- Step 2: Insert rows  
INSERT INTO #test_data
VALUES
(1, 'Olivia', '2025-01-05'),
(2, 'Emma', '2025-03-02'),
(3, 'Liam', '2025-11-15'),
(4, 'Noah', '2025-12-22');
If I run this query, how many rows are returned?
SELECT t1.[key] AS row,
       t2.*
FROM OPENJSON(
     (
         SELECT t.* FROM #test_data AS t FOR JSON PATH
     )
             ) t1
    CROSS APPLY OPENJSON(t1.value) t2;

See possible answers