我想要一个简写(如果可能的话)将多个记录插入到具有主键和IsIdentity属性的表中 . 例如,假设我有一个名为'People'的表,其中包含以下列:
- ID(主键和身份[即自动增量])
- 姓名(非空)
- 电子邮件(非空)
不包括自动递增ID列的insert语句完全有效,例如:
INSERT INTO People VALUES ('George', 'george@email.com')
但是如果我想在同一个语句中插入多个值, ideally 可以做到这样的事情我 don't have to explicitly specify the column names :
INSERT INTO People VALUES (
(auto, 'George', 'george@email.com'),
(auto, 'Mary', 'mary@email.com')
)
我能找到的最佳解决方案是这样的:
INSERT INTO People (
SELECT 'George', 'george@email.com',
UNION ALL
SELECT 'Mary', 'mary@email.com'
)
我想你可以争辩说,这是一种毫无意义的追求,但我希望查询本身可以随表设计一起扩展 . 例如,如果列名称已更改,或者添加了更多列,则无需在代码中的任何位置更改此列 .
干杯:)
2 回答
您可以像这样插入多行:
编辑:
只要您的主键设置为自动增量,您就可以使该字段无效,它会自动将该值设置为自动增量值 .
这取决于您使用的数据库 . 一些数据库允许多个值集: