Is your application using deprecated features that a future SQL Server may remove? Here is how SQL Server helps you find them, starting with a Profiler event.
Identify SQL Server Version From a Backup File
To identify SQL Server version from a backup file, run RESTORE HEADERONLY and read DatabaseVersion and SoftwareVersionMajor. This post makes a demo backup, reads its header, and maps the numbers to products. It also shows how to compare the backup with your server in T-SQL, and why a header sometimes fails to read on an older server.
Temporary Stored Procedures in SQL Server: Local and Global
Temporary stored procedures start with one # sign for a local one and two for a global one, and both live in tempdb. This post creates each kind on a demo database, shows who can call them and when they disappear, and explains which database their object names resolve in. It ends with the habit that makes them useful for testing a rewrite.
Query Store Read-Only: Size Limits That Stop Capture
Your Query Store may want READ_WRITE and still be READ_ONLY. Here is how it happens, how to read the reason, and how to get capture back.
SQL SERVER – Puzzle – How Does YEAR Function Work?
SELECT YEAR(35000/20) returns 1904, which looks strange. This puzzle shows how the YEAR function treats a plain integer. Can you explain the result?
Salted Password Hashes With HASHBYTES and CRYPT_GEN_RANDOM
A salt makes two identical passwords look different, yet it does not slow down guessing. Here is a small demo of both, and what to use instead.







