Try this simple puzzle with UNION and ORDER BY. Guess what each of the three queries returns, and see why one of them fails with Msg 108 and Msg 104.
Overlapping Chunks: Splitting Long Text With GENERATE_SERIES
Split long text into overlapping pieces with one short query. Plus the quiet traps: NULL text, a step that is too big, and chopped words.
Narrow Index Keys: Why the Clustered Key Width Matters Everywhere
Evaluate narrow index keys by comparing clustered GUID and integer designs, measuring index pages, and preserving natural uniqueness.
Database Security Basics for a Small Business
Database security basics for a small business cover patching, off-site backups, strong logins, limited access, and encryption that works.
Designing Your First Table: Columns, Keys and Data Types
Designing Your First Table gets easier when you decide what it must hold before you write any SQL. This post walks through naming, data types, NULL or NOT NULL, a primary key, a default and a check constraint on a small Customers table. It also shows what to leave for later.
Table-Valued Parameters: Sending Thousands of Rows in One Call
Send thousands of rows in one call with table-valued parameters, compare round trips, and handle missing column statistics accurately.
Read-Only Filegroups: Locking Away Old Data
Read-only filegroups let you lock old data so nothing can change it by accident. This post moves old rows to their own filegroup, makes it read-only, shows what still works and what fails, and explains how partial backups skip the locked data.







