sql-server 在SQL中是否有自动递增主键的方法?

wbrvyc0a  于 2022-10-31  发布在  其他
关注(0)|答案(1)|浏览(122)
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等的记录。
有办法做到这一点吗?
该表已经创建,我无法更改它。创建另一个表并将其中的数据插入到我的表中是否更好?

smdnsysy

smdnsysy1#

通常的做法是将id列定义为identity值,然后在插入语句中省略该列。这样,SQL Server将自动为id列生成值。
但我看到了这一点:
该表已创建,无法更改。
不幸的是,existing columns cannot become identity columns。您必须使用旧值添加一个新的标识列,然后删除原始列。
但还是有希望的。另一个选择是创建一个Sequence,然后在INSERT语句中使用NEXT VALUE FOR语法。一旦你这样做了,你要确保总是使用这个序列,并且从不插入没有它的新值。否则你可能最终会试图创建重复的键,这将失败。

相关问题