当前位置: 首页 > 面试题库 >

如何在SQL Server表中插入一个auto_increment键

陶乐生
2023-03-14
问题内容

我想将行插入具有唯一,非自动递增主键的表中。

是否有本机SQL函数来评估最后一个键并将其递增,还是我必须分两个步骤进行操作:

key = select max(primary.key) + 1

INSERT INTO dbo.TABLE (primary.key, field1, fiels2) VALUES (KEY, value1, value2)

问题答案:

从整个注释来看,您在表上有一个主键,而不是标识列。

如果您的SQL Server版本是SQL 2012,则应查看序列:http : //msdn.microsoft.com/zh-
cn/library/ff878091.aspx

在其他版本中,您需要使用IDENTITY属性(http://msdn.microsoft.com/zh-
cn/library/aa933196(v=sql.80).aspx)重新创建表,或者使用主键列来重新创建表。两步法。

如果采用两步法,则需要确保并发运行的插入最终不会使用相同的新值。最简单的方法是将select和insert组合为一个值,并使用可序列化的表提示:

CREATE TABLE dbo.Tbl1(id INT PRIMARY KEY, val1 INT, val2 INT)

INSERT INTO dbo.Tbl1(id, val1, val2)
VALUES((SELECT ISNULL(MAX(id)+1,0) FROM dbo.Tbl1 WITH(SERIALIZABLE, UPDLOCK)), 42, 47);

SELECT * FROM dbo.Tbl1;


 类似资料:
  • 我想将行插入到具有唯一的、非自动递增主键的表中。 是否有一个本机SQL函数来计算最后一个键并将其递增,还是必须分两步进行:

  • 本文向大家介绍如何在PostgreSQL中将一个表中的值插入到另一个表中?,包括了如何在PostgreSQL中将一个表中的值插入到另一个表中?的使用技巧和注意事项,需要的朋友参考一下 假设您有两个表:marks和student_info。下面分别给出两个示例 name roll_no perc_marks 阿尼凯特 12 24 西迪 45 65 亚什 26 42 伊莎 56 87 name rol

  • 这是我的php文件...我想在第二个表成功插入后更新第一个表,我要选择并正确插入,但我想更新的行在数据插入后没有更新。 有人能告诉我如何写这在PHP mysqli程序的方式。

  • 问题内容: 我有一个列表,例如:thing1,thing2,thing3。我想将它们插入具有相同外键的查找表中。因此理想情况下,它看起来应该像这样: 看来完成此操作的唯一方法是将列表转换为查询,但是我想知道,是否有更简单的方法? 这是我尝试过的: 我听说您无法在cfquery中执行cfloop,但是我什至不确定这是否成立,因为VALUES中没有逗号,并且我不确定如何说“ cfloop中的“当前迭代

  • 我正在尝试更新 DB2 中的同一表中是否存在(如果不存在)或插入。 我有一个表“V _ OPORNAC”(scheme是SQLDBA),它包含三列,其中有两个主键:IDESTE (PK)、IDEPOZ (PK)、OPONAR 我的情况是,如果IDESTE=123456和IDEPOZ=0的数据(OPONAR)不存在,则插入新行,如果存在,则更新(OPONAR)。我试过这样做: 执行上面的代码,我得到

  • 问题内容: 假设我有两个表,并且 我想在一个查询中将来自某些输入的数据插入到表中,该怎么做? 请,如果可以做到,请解释语法。 问题答案: MySQL不支持在单个INSERT语句中进行多表插入。奇怪的是,Oracle是我所知道的唯一一个…