You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中如何实现主键自增插入?已创建表无法修改的解决方案

实现主键自增插入10条记录的方案

无需修改原表的直接实现方式

因为原表无法修改,可通过SQL生成自增序列来插入数据,避免主键重复:

方法1:递归CTE生成序列

WITH Numbers AS (
    SELECT 1 AS num
    UNION ALL
    SELECT num + 1 FROM Numbers WHERE num < 10
)
INSERT INTO [db].[schema].[table1] 
      ([id], [status], [date], [username], 
       [date2], [username2], [description])
SELECT num, 'A', '2021-01-01T05:30:44', 'abc', 
        '2021-04-01T05:30:44', 'xyz', 'DESC'
FROM Numbers;

递归CTE会生成1到10的连续数字,作为主键id插入,确保每条记录主键唯一且递增。

方法2:利用系统表生成序列

INSERT INTO [db].[schema].[table1] 
      ([id], [status], [date], [username], 
       [date2], [username2], [description])
SELECT TOP 10
    ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS id,
    'A', '2021-01-01T05:30:44', 'abc', 
    '2021-04-01T05:30:44', 'xyz', 'DESC'
FROM sys.all_columns;

通过ROW_NUMBER()函数生成1到10的序号,结合系统表sys.all_columns(数据量足够生成10条记录)来完成插入。

是否需要新建表再导入?

  • 若仅为一次性插入10条数据,上述方法已满足需求,无需新建表,操作更高效直接。
  • 若后续需要频繁插入带自增主键的数据,且原表无法设置IDENTITY自增属性,可考虑新建带自增主键的表,导入原表数据后用新表处理后续操作。但针对当前单次需求,建表属于冗余操作,没必要额外增加复杂度。

内容的提问来源于stack exchange,提问作者carrotcake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:45:22