sql server null を設定するためのいくつかの提案
テーブルを設計する際、フィールドにNull値を許可するかどうかで議論になることがあります。
データベースの魔術師、Kalen Delaneyがちょっとしたアドバイスをしています。
1, ユーザーテーブルでNULL値を許さない
2, ユーザー・テーブルの定義にNOT NULL制約を含める
3, NULL値の動作を制御するためにデータベースのプロパティに依存しないこと
<スパン
1点目について
もしNULLが許されるなら、私たちにとってどんな意味があるのか、逆に言ってみましょう。
1、SQLは、NULL値を許容するカラムが実際にどのカラムに格納されているかを示すために、各行に特別なビットマップを設定します。もしNULLであれば、SQL Serverは各行にアクセスする際にこのビットマップをデコードしなければなりません。
2, NULLを許可すると、アプリケーションのコードも複雑になり、常にこのNULL値を処理するための特別なロジックが追加されるため、しばしばバグが発生するようになります。
<スパン 2点目 NULLは許可されていない場合は、NULLを許可しない列にいくつかのデフォルト値を含めるには、まだデフォルト値を追加していない、表示列の不在で挿入、それはINSERT、SQL Serverのデフォルトの失敗が発生します挿入NULLが表示されていない列。
最後のポイント 最後のポイントは、NULL値の比較に関連することです。IS NULL、IS NOT NULLで比較するのか、それとも=、<>で比較するのか、迷うところです。データベースオプションのANSI NULLSを変更することはできませんが(私たちの多くはDBAではありません)、データベースオプションのANSI NULLSと同等のセッション設定SET ANSI_NULLSを使用することができます。このオプションが真の場合、NULL値との比較はすべてFALSEになり、コードはIS NULL条件を使用しなければなりません。 このオプションが偽の場合、比較する値が両方ともNULLであれば、結果はTRUEになり、SQL ServerではIS NULLの同義語として=NULL、IS NOT NULLの同義語として <> NULLが認められています。
このオプションを忘れた場合は、IS NULLでNULLを判定し、IS NOT NULLで非NULLを判定することをお勧めします。
テストは以下の通りです。
t3テーブルには、このように2行のデータしかありません。
SET ANSI_NULLS OFFの場合。
SET ANSI_NULLS ONの場合
要約すると、最適なアプローチということになります。 テーブルを設計する際、フィールドにNULLを許さず、デフォルト値を付けること .
関連
-
SQL Server 2005のすべてのテーブルで、特定のカラムを検索する方法
-
Microsoft Sql server2005 のインストール手順のグラフィック詳細とよくある問題の解決法
-
SQL2005 ビューデッドロック ストアドプロシージャ sp_who_lock
-
SQL Server 2005 復旧データベース詳細グラフィックチュートリアル
-
SQL Server 2005 Compact Editionのデータベースを削除する詳細情報
-
PowerDesignerでSQL Serverデータベースをインポートする方法
-
SQL Server 2005 の SQL 文の時限実行方法について
-
sql2005 ローカルコンピュータの SQL SERVER サービスが起動し、その後停止する 解決方法
-
[オリジナル】SQL2005再ビルドインデックスストアドプロシージャ sp_rebuild_index
-
SQL Server 2005データベースミラーリング関連知識の簡単な説明
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SQL ServerにおけるRAISERRORの使用詳細
-
SQL Serverは、SET FMTONLY ONでテーブルのメタデータを取得する
-
SQL server 2005で自動番号フィールドを設定する方法
-
WIN7でSQL Server 2005 Express Edition(Lite)のインストールと設定
-
SQLServer 2005でサーバー名がない場合の2つの解決策
-
SQL2005インストール時のバージョン変更チェックでSKUPGRADE=1が発生する問題の解決法
-
SQL Server 2005 ミラー構築マニュアル(sql2005 データベース同期ミラーリングソリューション)
-
SQLserverにおけるdeclare変数の使用法
-
Sqlサーバーのバックアップとリストア後の制限されたユーザーの問題
-
win2003 ServerでSQL Server 2005のリモート接続を設定する方法