Andy Warren

I started my SQL journey here at SQLServerCentral as one of the founders, helping to build a place to share and learn that continues to thrive under the editorial guidance of my friend Steve Jones. I've done a lot of volunteer work over the years ranging from our local SQL group (oPASS, SQLOrlando) to serving on the Board of Directors of PASS to designing and building the framework of SQLSaturday (which has gone on to produce more than 1000 locally managed events since we started in 2007). These days I manage a DBA team, but over the years I've been a trainer, consultant, contractor, and DBA. I'm rarely present on social media, the best way to contact me is here, LinkedIn, or via email.

SQLServerCentral Article

A Pattern Based Approach to Masking Errors

A few years ago I had a requirement to allow both developers and customers to see rows from a table used to store error information while making sure that any PII, PCI or similar sensitive data was not displayed. The tolerance for “oops” was low! This article presents one way to solve the challenge by […]

(1)

You rated this post out of 5. Change rating

2020-04-27

1,764 reads

SQLServerCentral Article

Worst Practices - Objects Not Owned by DBO

Last week Andy launched a new series about Worst Practices by talking about why the Hungarian naming convention is bad for column names. This week he's at it again, declaring that the practice of having objects owned by anyone other than dbo is BAD! Agree or disagree, we think you'll enjoy reading this article and adding your thoughts to the discussion!

(7)

You rated this post out of 5. Change rating

2019-08-01 (first published: )

38,423 reads

SQLServerCentral Article

Error Logging Gone Wild

Many of have applications that log errors to a table. Ever thought about what happens when an application starts to throw a lot of errors? This article looks at the problem and some of the responses you might consider having ready in case it happens to you!

(6)

You rated this post out of 5. Change rating

2016-10-11

1,807 reads

Technical Article

Time to Rebrand

I became a SQL guy back in 1998 because the company that hired me used SQL Server. It’s been a good ride and it’s paid the bills, but after 15 years or so it’s time to do something different.

2015-04-01

6,297 reads

Blogs

What DevOps Look Like in Microsoft Fabric

By

Microsoft Fabric (not to be confused with the more general term “fabric” in DevOps)...

T-SQL Tuesday #192: What career risks have you taken?

By

I’m honored to be hosting T-SQL Tuesday — edition #192. For those who may...

AI: Blog a Day – Day 3: LLM Models – Open Source vs Closed Source

By

Continuing from Day 2 , we learned introduction on Generative AI and Agentic AI,...

Read the latest Blogs

Forums

Can an Azure App Service Managed Identity be used for SQL Login?

By jasona.work

I'm fairly certain I know the answer to this from digging into it yesterday,...

Azure Synapse database refresh

By Sreevathsa Mandli

Hi Team, I am trying to refresh the Azure Synapse Dedicated pool from production...

how to write this query?

By water490

hi everyone I am not sure how to write the query that will produce...

Visit the forum

Question of the Day

Fun with JSON I

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 *
FROM OPENJSON(
     (
         SELECT t.* FROM #test_data AS t FOR JSON PATH
     )
             ) t;

See possible answers