-1

SQL Server Management Studioでは、新しいテーブルを作成するとき、またはテーブルデザイナーを使用して既存のテーブルに列を追加するときに、次の3つの列が表示されます。

  1. 列名
  2. データ・タイプ
  3. Nullを許可します

[Nullを許可する]は常にデフォルトでTrue(チェックマーク付き)になっていますが、SSMSを常にデフォルトで(チェックマークなし)に設定できるかどうか疑問に思っていますFalse

程度は低いですが、下のペインの[列のプロパティ]タブで編集可能なデフォルトオプションを構成できるかどうかも知りたいと思います。

4

3 に答える 3

3

正直なところ、 AllowNullsのデフォルト値が構成可能かどうかは正確にはわかりません。そうではないと思います。実際、混乱を招く可能性があるため、構成できないことを願っています。これが私の推論です。

デフォルトでNullを許可することは、DDLステートメントの列宣言に/Trueがないことをデフォルトで。に設定することと一致しているように思われます。つまり、ステートメントを使用するときに列定義のそのビットを省略しても、SSMSなどのツールのダイアログモードを使用するときに注意を払わなくても、結果は同じであると期待します。NULLNOT NULLNULLCREATE TABLE

すでに多くの人がいない、NULLまたは多くの人にNOT NULL解釈さNULLれてきたので、今その意味を変えることはあまり意味がないと思います。したがって、[新しいテーブル]ダイアログの[Nullを許可]オプションのデフォルト値も変更しないでください。

ただし、意味があるのは、ダイアログボックスの[ Nullを拒否するデフォルトの新しい列]スイッチ(もちろん、最初はオフになっている)で、この特定のテーブル編集セッションでのデフォルトの動作を変更することです。

于 2012-04-15T21:54:11.500 に答える
3

テーブル編集モードでオフにしようとしたときにSSMSがスローするフィットのために、構成できないと思います(同じ基になるコードベースを使用していると仮定します)。

ただし、 SETANSI_NULL_DFLT_ONを使用して目的を達成できる場合があります。これにより、(セッションの)新しい列のデフォルトのnull可能性が上書きされます。

以下のクエリでは、sp_helpの「Nullable」列の違いに注意してください。

set ANSI_NULL_DFLT_ON ON
create table test (id int)
go
sp_help test
go
set ANSI_NULL_DFLT_ON OFF

drop table test
create table test (id int)
go
sp_help test

私はあなたがあなた自身またはあなたが一緒に働いている人々に彼らの列をNULLではなくNOTNULLとしてデフォルトにするように強制するためにこれをしたいと思っていると思います。

于 2012-04-20T15:06:27.750 に答える
3

レジストリキーの操作に問題がない場合は、SSMSに常に値falseAllowNullプロパティに割り当てるように強制するオプションがあります。

NOTE: Please be careful while altering registry keys.

  1. Windowsの[スタート] ->[ファイル名を指定して実行]にregeditと入力して、レジストリエディタを開きます。

  2. に移動しHKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\100\Tools\Shell\DataProjectます。それに応じてSQLServerのバージョンを変更する必要がある場合があります。SQL Server 2008 R2 Expressを使用しているため、バージョン100を使用しています。

  3. 上記のレジストリパスの下で、キー名を探しますSSVDefaultAllowNull

  4. キーを右クリックして、[変更]オプションを選択します。値を1からに変更します0。デフォルト値は1で、これはTrueを表します。

  5. すでにSQLServerManagement Studioを実行している場合は、再起動します。このステップを指摘してくれた@AndriyMに感謝します。

お役に立てば幸いです。

于 2012-04-23T19:47:44.597 に答える