1. ホーム
  2. sql-server

SQL Server NullとEmpty Stringの比較

2023-10-01 21:49:53

質問

どのように NULL 空のVarchar に格納されている値 SQL サーバー . そして、もし私が string フィールドへのユーザ入力がない場合 UI を格納する必要があります。 NULL または '' ?

どのように解決するのですか?

いい記事がありますよ。 ここに を参照してください。 重要なことは、テーブルのサイズに違いはないということです。しかし、NULLチェックを行う必要がないため、クエリーが簡単になることから、空の文字列を使用することを好むユーザーもいます。 文字列が空かどうかをチェックするだけです。もうひとつ、リレーショナルデータベースにおけるNULLの意味について説明します。これは、文字フィールドへのポインタが行のヘッダで0x00に設定され、したがってアクセスするデータがないことを意味します。

更新 詳細な記事があります。 はこちら で、実際に何が起きているのかが書かれています。

各行には、NULLを許可する列のためのNULLビットマップがあります。もしその列の行が ビットマップのビットが1になり、それ以外の場合は0になります。

可変サイズデータ型では、実際のサイズは0バイトです。

固定サイズのデータ型では、実際のサイズはデフォルトのデータ型サイズとなります。 バイトで、デフォルト値(数値は0、文字列は'')に設定されます。

DBCC PAGE の結果を見ると NULL と空の文字列の両方が 0 バイトを占有することがわかります。 .