DEFAULT値を持たないnot nullカラムを追加することは可能ですか?
2023-08-15 03:59:47
質問
私は DEFAULT 値を指定したくないのですが、MS-SQL 2005 は NOT NULL として指定したカラムを追加することができます。
ALTER TABLE は、NULL を含むか、DEFAULT 定義が指定されているか、追加される列が ID 列またはタイムスタンプ列であるか、あるいは、前の条件がどれも満たされない場合、この列の追加を許可するにはテーブルが空でなければならない列のみを追加することを許可しています。列 'test' はこれらの条件を満たさないため、空でないテーブル 'shiplist' に追加することはできません。
YESの場合、構文を教えてください。NOの場合、理由を明記してください。
どのように解決するのですか?
いいえ、できません。
なぜなら、もしできたとしたら、SQL はすでに存在するレコードに値として何を入れたらよいのかわからないからです。もし、テーブルにレコードがなければ、問題なく動作するでしょう。
これを行う最も簡単な方法は、デフォルトでカラムを作成し、その後、デフォルトを削除することです。
ALTER TABLE dbo.MyTable ADD
MyColumn text NOT NULL CONSTRAINT DF_MyTable_MyColumn DEFAULT 'defaultValue'
ALTER TABLE dbo.MyTable
DROP CONSTRAINT DF_MyTable_MyColumn
もう一つの方法は、制約なしで列を追加し、すべてのセルの値を埋めて、制約を追加することです。
関連
-
SQL-初心者のためのベスト入門SQLクエリ I
-
[解決済み] 複数の列でgroup byを使用する
-
[解決済み] カラムの変更:NULLをNOT NULLに変更する
-
[解決済み] SQL Serverでテーブルからカラム名を取得するにはどうすればよいですか?
-
[解決済み] Count()で条件を指定することは可能ですか?
-
[解決済み] SQL ServerでINSERT INTOとしてデータをエクスポートする
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] 既存のテーブルにNOT NULLカラムを挿入する
-
[解決済み] SQLカラム定義:デフォルト値とnot nullは冗長?
-
Null可能なカラムをデフォルト値でNOT NULLに変更する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
解決策:java.sql.SQLException: ユーザー ''@'localhost'' (パスワード: YES を使用) のアクセスが拒否されました。
-
plsql-stored-procedure ORA-06550 エラー処理
-
[解決済み] SQLの結合形式 - 入れ子になった内側join
-
[解決済み] カラムの変更:NULLをNOT NULLに変更する
-
[解決済み] JOINとINNER JOINの違いについて
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] SQL Server における DateTime2 と DateTime の比較
-
[解決済み] SQL ServerでGROUP BYを使って文字列を連結する方法とは?
-
[解決済み] 別のテーブルに一致する項目がない行を選択するにはどうすればよいですか?
-
[解決済み] 現在の日付をカラムのデフォルト値として使用する