Additional Articles


Technical Article

SQL Server 2005 - Managed execution

The next version of SQL Server named SQL Server 2005 is completely hyped with the integration of CLR into SQL Server. The introduction of CLR into SQL Server allows developers to write stored procedures, triggers, user defined functions, user defined aggregates and user defined types using .NET languages like VB.NET and C#. This introduction has opened up multiple avenues for developers and we need to be careful in maximizing the feature provided.

2005-01-14

3,007 reads

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)

2005-01-13

1,665 reads

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.

2005-01-12

2,354 reads

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.

2005-01-11

2,003 reads

Blogs

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...

Black Box vs. Gray Box vs. White Box Testing

By

If your organization is spending money, then meaningful results are a must. Pen testing...

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