在T-SQL中,如何插入一个默认设置了所有值的新行?

时间:2010-06-20 04:45:21

标签: sql tsql syntax insert default-value

在Microsoft SQL数据库中,我有一个表,其中每列都有默认值(固定值或标识或getdate()之类的内容)。

我正在尝试编写一个SQL语句,该语句将插入一个新行,其中每个单元格都有一个默认值。

无论

insert into MySchema.MyTable

,也不

insert into MySchema.MyTable () values ()

是有效的语法。

那么可以在不指定任何值的情况下插入新行吗?

2 个答案:

答案 0 :(得分:25)

insert into foo DEFAULT VALUES

答案 1 :(得分:0)

标准SQL

INSERT INTO tablename VALUES ( DEFAULT, DEFAULT, DEFAULT... )

如果使用DEFAULT保留关键字代替实际值,则表示该字段的默认值。这允许您指定一些列而不指定其他列。

语法是SQL标准的一部分,自2005年以来适用于大多数数据库:

(简单数据库,例如SQLite或Access,往往不支持这些“新”或“高级”语法。)

非标准

INSERT INTO tablename DEFAULT VALUES

这将插入一个新行,用默认值填充所有内容。

据我所知,这种语法是非标准的,很少有数据库支持它 - 我只知道MS SQL和PostgreSQL。 虽然我个人不使用它,但我可以看到用例,它可能会像DEFAULT字段一样标准化。