To find the data type of an expression in SQL Server, pass it to SQL_VARIANT_PROPERTY or describe the whole query with sys.dm_exec_describe_first_result_set. This post tests both on a percentage calculation, shows how precision and scale come out, and explains why 2147483647 plus 1 fails.
Columnstore Bulk Load: Why Batch Size Decides Where Rows Land
Review columnstore bulk load batch sizes, inspect delta and compressed rowgroups, and measure the cost of forcing small groups to compress.
Does NOLOCK Really Applies No Lock? – Interview Question of the Week #209
Does NOLOCK really applies no lock? No. NOLOCK takes a Sch-S, or schema stability, lock. Here is a simple script to see it for yourself.
sp_executesql Output Parameters: Getting Values Back From Dynamic SQL
Dynamic SQL runs in its own scope, so a value only comes back if you ask twice. Here are the two mistakes that leave you with NULL.
Implicit Conversions That Quietly Turn Seeks Into Scans
Find implicit conversions in SQL Server plans, compare parameter and column types, and fix type contracts without losing Unicode data.
Catch-All Queries and Optional Parameter Plan Optimization in SQL Server 2025
Compare catch-all queries with recompilation, parameterized dynamic SQL, and SQL Server 2025 optional parameter plan optimization.






