Grant Fritchey

Grant Fritchey is a SQL Server MVP with over 20 years’ experience in IT including time spent in support and development. Grant has worked with SQL Server since version 6.0 back in 1995. He has developed in VB, VB.Net, C# and Java. Grant has authored books for Apress and Simple-Talk, and joined Red Gate as a Product Advocate in January 2011. Find Grant on Twitter @GFritchey or on his blog as the Scary DBA.

SQLServerCentral Editorial

You Never Know

I'm writing this sitting at the PASS Data Community Summit. It's been a fantastic event. I gave a community session on Azure DevOps. I was able to help Redgate launch a new product. I've received a bunch of hugs from VERY dear old friends. I've met a ton of people. It's been great. Allow me […]

(3)

You rated this post out of 5. Change rating

2023-11-18

75 reads

SQLServerCentral Editorial

Celebrate THEIR Accomplishments

I can't hide this in any way. I love it when I accomplish something. It's such a great feeling. Even more than that, I really do love getting some acknowledgement for it. Almost as good, is when I see others, especially friends and acquaintances, doing well. So many people I know, regularly just knock it […]

You rated this post out of 5. Change rating

2023-10-21

63 reads

SQLServerCentral Editorial

Gentlest of Reminders, Don't Stop Learning

I was on the road for just over two weeks. I was able to travel around to a few places and present some sessions. But, better than that, thanks to SQL Konferenz, I was able to go to a couple of sessions and learn some stuff. I'm lucky/cursed in my position at Redgate. We have […]

(1)

You rated this post out of 5. Change rating

2023-09-23

101 reads

SQLServerCentral Editorial

Be Prepared

I've been reading about the fires in Maui and the horrible loss of life there. My heart goes out to all involved. I hope, if you can, you donate to a good charity to help those poor people. It also inspired me to do another check on our emergency supplies and equipment. No, we don't […]

(2)

You rated this post out of 5. Change rating

2023-08-26

101 reads

SQL Server Execution Plans eBook, Third Edition, by Grant Fritchey

SQL Server Execution Plans, Third Edition, by Grant Fritchey

Every Database Administrator, developer, report writer, and anyone else who writes T-SQL to access SQL Server data, must understand how to read and interpret execution plans. This book leads you right from the basics of capturing plans, through how to interrupt them in their various forms, graphical or XML, and then how to use the information you find there to diagnose the most common causes of poor query performance.

(3)

You rated this post out of 5. Change rating

2023-08-16 (first published: )

6,004 reads

Blogs

Optimising Costs: Strategies for Efficient Cloud Resource Management

By

Over time, I’ve realised that one of the hardest parts of cloud management isn’t...

Cost Visibility: Tracking and Analysing Your Cloud Spend

By

One of the biggest challenges I’ve faced in cloud operations is maintaining clear visibility...

Whiling away an afternoon, thinking

By

I come to Heathrow often. Today is likely somewhere close to 60 trips to...

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