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

Testing for an Updated Column in a Trigger

The columns_updated function gives you the ability to easily test to see if specific columns were modified with less code than you might otherwise need to use. In this article Andy Warren demonstrates how to create a trigger that uses this function and points out some reasons why you may NOT want to use it!

(3)

You rated this post out of 5. Change rating

2003-08-21

18,239 reads

SQLServerCentral Article

Worst Practice - Bad Connection Strings and Bad Info in Sysprocesses

Andy returns to the Worst Practice series this week with a short article looking at how connection strings in applications affect what you see in sysprocesses. Perhaps less controversial (in our opinion) that some of the other worst practices, this is something easy to fix and definitely worth fixing! Read the article and post a comment - explore other points of view! Readers posting a comment will be entered in a drawing for a copy of the SQL Server 2000 Resource Kit.

You rated this post out of 5. Change rating

2003-08-01

15,787 reads

SQLServerCentral Article

The Best of SQLServerCentral.com 2002 - We Did It!

The book is almost here! We've been working on it for months, now you can find out what it's going to look like, who the authors are, and how much it costs. It's been a lot of work but we think it's been worth it. Read the article to see how to save $3 off an already low price.

You rated this post out of 5. Change rating

2003-07-07

6,074 reads

SQLServerCentral Article

Managing Jobs - Part 4

Andy has been busy lately on a project you'll be hearing more about soon (!), but he did manage to get part four of his managing jobs series done. This article discusses ideas for patterns to follow when building jobs, including writing to the console, setting errorlevels, and how to get them installed on the server. DBA's, if you're not developers, look at this article - this is stuff you can take to your development team and get better/more manageable jobs.

You rated this post out of 5. Change rating

2003-06-25

8,009 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

how to write this query?

By water490

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

Rollback vs. Roll Forward

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Rollback vs. Roll Forward

Foreign Keys - Foes or Friend?

By utsav

Comments posted to this topic are about the item Foreign Keys - Foes or...

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