Sql-Server

SQL Server 不能將 NULL 儲存在固定長度的列中嗎?

  • September 13, 2017

我在Oracle 官方文件中看到了這個聲明:

在 Microsoft SQL Server 中,只有具有可變長度數據類型的列才能儲存 NULL 值。當您創建允許具有固定長度數據類型的 NULL 的列時,該列會自動轉換為系統可變長度數據類型…

我從來沒有在SQL Server 文件中讀到過這個,也沒有經歷過這樣的事情。相反:在 SQL Server 中,固定長度的數據類型(例如 int 和 float,還有 char)被大量使用並且即使在可為 NULL 時也非常有效地儲存。

這個Oracle聲明背後有什麼理由嗎?!

嗯,這就是Sybase 的情況,它是 SQL Server 的祖先。不幸的是,我沒有找到有關何時進行此確切更改的任何資訊,但根據本文,引擎已在 SQL Server 2005 中完全重寫。由於任何現代 SQL Server 版本都不是這種情況,您可以忽略這一點陳述。

引用自:https://dba.stackexchange.com/questions/185841