web-dev-qa-db-ja.com

SQLテーブルにデフォルト値を挿入する方法は?

このようなテーブルがあります:

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)も機能しません。

行を挿入するときに、列にデフォルト値を使用するようにデータベースに指示するにはどうすればよいですか?

59

Insertステートメントには、デフォルト値を使用する列を含めないでください。例えば:

INSERT INTO table1 (field1, field3) VALUES (5, 10);

...field2およびfield4のデフォルト値を使用し、field1に5を割り当て、field3に10を割り当てます。

67
aroth

テーブルの変更(新しい列または列の順序など)に依存しないように列をリストすることをお勧めします

insert into table1 (field1, field3)  values (5,10)

ただし、これを行いたくない場合は、DEFAULTキーワードを使用します

insert into table1 values (5, DEFAULT, 10, DEFAULT)
129
gbn

最善の方法は次のとおりです。

insert your_table
default values
25
inon

このようにしてみて

INSERT INTO table1 (field1, field3) VALUES (5,10)

その場合、field2とfield4にはデフォルト値が必要です。

5
fkerber

列にNULL値を含めない場合は、列をNOT NULLとして定義する必要があります。そうしないと、デフォルトではなくNULLで渡されたものが使用され、エラーは発生しません。

any値をこれらのフィールドに渡さない場合(使用するフィールドを指定する必要があります)do使用したい場合、デフォルトが使用されます:

INSERT INTO 
  table1 (field1, field3) 
VALUES   (5,10)
3
Oded

このように書くことができます

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
1
Biddut

デフォルト値を挿入するには、次のように省略します。

Insert into Table (Field2) values(5)

他のすべてのフィールドは、定義されている場合、nullまたはデフォルト値になります。

0
Beatles1692