Sql-Server
SQL Server 不能將 NULL 儲存在固定長度的列中嗎?
我在Oracle 官方文件中看到了這個聲明:
在 Microsoft SQL Server 中,只有具有可變長度數據類型的列才能儲存 NULL 值。當您創建允許具有固定長度數據類型的 NULL 的列時,該列會自動轉換為系統可變長度數據類型…
我從來沒有在SQL Server 文件中讀到過這個,也沒有經歷過這樣的事情。相反:在 SQL Server 中,固定長度的數據類型(例如 int 和 float,還有 char)被大量使用並且即使在可為 NULL 時也非常有效地儲存。
這個Oracle聲明背後有什麼理由嗎?!
嗯,這就是Sybase 的情況,它是 SQL Server 的祖先。不幸的是,我沒有找到有關何時進行此確切更改的任何資訊,但根據本文,引擎已在 SQL Server 2005 中完全重寫。由於任何現代 SQL Server 版本都不是這種情況,您可以忽略這一點陳述。