INSERT INTO [db].[schema].[table1]
([id], [status], [date], [username],
[date2], [username2], [description])
VALUES (1, 'A', '2021-01-01T05:30:44', 'abc',
'2021-04-01T05:30:44', 'xyz', 'DESC')
GO 10
我想自动增加主键,这样我就可以插入10个具有不同主键1、2、3、4等的记录。
有办法做到这一点吗?
该表已经创建,我无法更改它。创建另一个表并将其中的数据插入到我的表中是否更好?
1条答案
按热度按时间smdnsysy1#
通常的做法是将
id
列定义为identity
值,然后在插入语句中省略该列。这样,SQL Server将自动为id
列生成值。但我看到了这一点:
该表已创建,无法更改。
不幸的是,existing columns cannot become identity columns。您必须使用旧值添加一个新的标识列,然后删除原始列。
但还是有希望的。另一个选择是创建一个
Sequence
,然后在INSERT
语句中使用NEXT VALUE FOR
语法。一旦你这样做了,你要确保总是使用这个序列,并且从不插入没有它的新值。否则你可能最终会试图创建重复的键,这将失败。