SQLServerCentral Article

Merge Replication - Manual Range Handling

SQL Server 2000 replication is a great feature, but it can cause some headaches at times. Since the use of identities is something many people take advantage of, learning to handle these in a replication scenario is critical. Author Paul Ibison has done extensive work with replication and brings us two techniques to help manage the ranges of values.

Technical Article

SQL Server 2005: Integrating SQL, XML, and XQuery

The evolution of SQL and the XML Query Language (XQuery) continues with the work of the World Wide Web Consortium (W3C) and the InterNational Committee for Information Technology Standards (INCITS). Providers of SQL database management systems have upgraded products such as Microsoft SQL Server to support the storage and retrieval of XML documents. Microsoft has provided stored procedures and Transact-SQL extensions for working with XML. On the horizon are even more changes as Microsoft introduces SQL Server 2005. (MP3 Audio)

Technical Article

Understanding "Yukon" Schema Separation

Well it has finally arrived, at least in the Beta version. Microsoft's long awaited latest version of it's SQL Server product has arrived in Beta version and holds promise to be a major and successful revision of this fine product. I have had the Beta version for a few months now and one of the new security items that has intrigued me the most is the separation of users and schemas. I've worked with this form of separation before in Microsoft's chief competitor, but this article is not a comparison of the two products or the way they implement schema separation; it is an article on the basics of user/schema separation for those SQL Server DBAs who may have not worked with separated schema separation before.

SQLServerCentral Article

Can You Compute?

Transact-SQL in SQL Server 2000 has some interesting features, many of which most DBAs will never use. While many DBAs are famliar with the basic aggregate functions, there are a few that are advanced and not well understood. The ROLLUP and COMPUTE operators are two of these and David Poole takes a look at how these work and a practical application for them.

Technical Article

Trace-scrubbing Tools

Andrew Zanevsky shares his trace-scrubbing procedures that make it easy for you to handle large trace files and aggregate transactions by type–even when captured T-SQL code has variations.

SQL Server Profiler is a veritable treasure trove when it comes to helping DBAs optimize their T-SQL code. But, the surfeit of riches (I'm reminded of the Arabian Nights tale of Aladdin) can be overwhelming. I recently had one of those "sinking" feelings when I first tried to make sense of the enormous amount of data collected by traces on a client's servers. At this particular client, the online transactions processing system executes more than 4 million database transactions per hour. That means that even a 30-minute trace that captures "SQL Batch Completed" events results in a table with 2 million rows. Of course, it's simply impractical to process so many records without some automation, and even selecting the longest or most expensive transactions doesn't necessarily help in identifying bottlenecks. After all, short transactions can be the culprits of poor performance when executed thousands of times per minute.

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

VS Code, Unresolved References.

By mjdemaris

Hi all, I just started using VS Code to work with DB projects.  I...

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

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