在Microsoft SQL数据库中,我有一个表,其中每列都有默认值(固定值或标识或getdate()
之类的内容)。
我正在尝试编写一个SQL语句,该语句将插入一个新行,其中每个单元格都有一个默认值。
无论
insert into MySchema.MyTable
,也不
insert into MySchema.MyTable () values ()
是有效的语法。
那么可以在不指定任何值的情况下插入新行吗?
答案 0 :(得分:25)
insert into foo DEFAULT VALUES
答案 1 :(得分:0)
INSERT INTO tablename VALUES ( DEFAULT, DEFAULT, DEFAULT... )
如果使用DEFAULT
保留关键字代替实际值,则表示该字段的默认值。这允许您指定一些列而不指定其他列。
语法是SQL标准的一部分,自2005年以来适用于大多数数据库:
(简单数据库,例如SQLite或Access,往往不支持这些“新”或“高级”语法。)
INSERT INTO tablename DEFAULT VALUES
这将插入一个新行,用默认值填充所有内容。
据我所知,这种语法是非标准的,很少有数据库支持它 - 我只知道MS SQL和PostgreSQL。
虽然我个人不使用它,但我可以看到用例,它可能会像DEFAULT
字段一样标准化。