具有主键自动更新的SQL表更新

时间:2014-04-23 04:47:48

标签: sql sql-server

我有一个超过30000行的表。

我需要使用需要此类输出的SQL查询来更新表。

初始表: -

  1 , 1 , a ,b
  2 , 1 , b ,c
  3 , 1 , c ,d
  ....
 50 , 1 , b ,n 
 51 , 2 , f ,y
 52 , 2 , g ,o
 53 , 2 , t ,t
 ....
 ....
100, 2 , f, h

输出应该是这样的: -

1 , 1 , a ,b
2 , 1 , b ,c
3 , 1 , f ,r(new row)
4 , 1 , c ,d
 ....
51 , 1 , b ,n 
52 , 2 , f ,y
53 , 2 , g ,o
54 , 2 , r ,t(new row)
55 , 2 , t ,t
....
....
102, 2 , f, h

因此,当我们根据第二列(某种类型的问题ID)输入数据时,应该更改基本上自动递增的第一列(主键)。

我已经看到并提到了这个问题(SQL How to insert a new row in the middle of the tableMySQL syntax for inserting a new row in middle rows?Insert data in the middle of any table),但它们为较小的表提供了解决方案,而我有一个包含超过30000行的表。

任何人都可以给我任何建议吗?

仅供参考: - 我使用的是Microsoft SQL Server。

1 个答案:

答案 0 :(得分:0)

然后你可以使用这个

    SET IDENTITY_INSERT Table_Name ON
    --Your insert queries over here
    SET IDENTITY_INSERT Table_Name OFF

并确保您没有违反主键意味着您的主键列数据必须是唯一的。