このようなテーブルがあります:
create table1 (field1 int,
field2 int default 5557,
field3 int default 1337,
field4 int default 1337)
Field2とfield4のデフォルト値を持つ行を挿入したい。
insert into table1 values (5,null,10,null)
を試しましたが、機能せず、ISNULL(field2,default)
も機能しません。
行を挿入するときに、列にデフォルト値を使用するようにデータベースに指示するにはどうすればよいですか?
Insertステートメントには、デフォルト値を使用する列を含めないでください。例えば:
INSERT INTO table1 (field1, field3) VALUES (5, 10);
...field2
およびfield4
のデフォルト値を使用し、field1
に5を割り当て、field3
に10を割り当てます。
テーブルの変更(新しい列または列の順序など)に依存しないように列をリストすることをお勧めします
insert into table1 (field1, field3) values (5,10)
ただし、これを行いたくない場合は、DEFAULT
キーワードを使用します
insert into table1 values (5, DEFAULT, 10, DEFAULT)
最善の方法は次のとおりです。
insert your_table
default values
このようにしてみて
INSERT INTO table1 (field1, field3) VALUES (5,10)
その場合、field2とfield4にはデフォルト値が必要です。
列にNULL
値を含めない場合は、列をNOT NULL
として定義する必要があります。そうしないと、デフォルトではなくNULL
で渡されたものが使用され、エラーは発生しません。
any値をこれらのフィールドに渡さない場合(使用するフィールドを指定する必要があります)do使用したい場合、デフォルトが使用されます:
INSERT INTO
table1 (field1, field3)
VALUES (5,10)
このように書くことができます
GO
ALTER TABLE Table_name ADD
column_name decimal(18, 2) NOT NULL CONSTRAINT Constant_name DEFAULT 0
GO
ALTER TABLE Table_name SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
デフォルト値を挿入するには、次のように省略します。
Insert into Table (Field2) values(5)
他のすべてのフィールドは、定義されている場合、nullまたはデフォルト値になります。