Technical Article

Generate SQL Automatically Without Compromising Quality

Most database developers dread including such navigation features as paginated reports, hierarchical navigation, filtering, and full-text search because the amount of time they take to develop is not proportional to the utility or interest they create. In addition, connecting individual pages and controls to the database is mind-numbing work. Since writing SQL is non-trivial in any circumstance, it typically requires a specialist DBA's involvement.
..... As Web-based applications proliferate to bring more functionality directly to end-users, writing every SQL statement for every web-based application in your shop is likely to become a never-ending Sisyphean task for your DBA.

Technical Article

Using the Table Data Type in SQL Server 2000

Performing routine database maintenance such as reindexing is important for keeping your databases running at peak performance. When you use INSERT, UPDATE, and DELETE statements to modify table data, indexes can become fragmented. Index fragmentation can happen when the logical sequence of pages is disrupted or when an index page contains less than its maximum amount of data, creating a gap in the data page or index. As indexes become fragmented, you get inefficient data reads when accessing tables and slower database performance.

External Article

SQL Server 2005 Security - Part 3 Encryption

After discussing authentication and authorization behavior of SQL Server 2005 Beta 2 in the previous two articles of this series, it is time to look into other security-related changes. In particular, we will focus on the freshly introduced native database encryption capabilities. While some encryption functionality existed in the previous versions (e.g. involving column encryption APIs within User Defined Functions or PWDENCRYPT password one-way hash function), it was relatively limited and rarely used. SQL Server 2005 provides significant improvements in this area.

SQLServerCentral Article

Performance Tips Part 1

SQL Server 2000 is a self tuning, self balancing application that performs wonderfully under a wide variety of loads and conditions with a minimal of administrative tuning. However there are some things that you can do when building T-SQL code and working with SQL Server to maximime performance and assist the query optimizer in selecting the best query plans. Leo Peysakhovich brings us the first part of his series looking at some different scenarios and how you can structure your code to achieve

External Article

COM Without Registration

When .NET first appeared it wasn't unusual to hear the question "Is COM dead?" In fact COM seems to be alive and well, and in this article I'll look at the way that Windows XP and Windows Server 2003 allow you to use COM in a side-by-side way without installing the usual registration entries โ€“ you won't need to use the Windows Registry to use side-by-side COM components.

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