Sql-server – Can’t SQL Server store NULLs in fixed-length columns

nulloraclesql serverstorage

I came across this statement in the official Oracle documentation:

In Microsoft SQL Server, only columns with variable-length data types
can store NULL values. When you create a column that allows NULLs with
a fixed-length data type, the column is automatically converted to a
system variable-length data type…

I have never read about this in the SQL Server docs nor have I experienced such a thing. On the contrary: in SQL Server, fixed-length data types (such as int and float, but also char) are heavily used and stored very efficiently even when NULLable.

Is there any rationale behind this Oracle statement?!

Best Answer

Well, this was the case for Sybase, which is the ancestor for SQL Server. Unfortunately, I did not find any information as to when this exact change was made, but according to this article the engine was fully rewritten in SQL Server 2005. As this is not the case for any modern SQL Server edition, you can just ignore this statement.