gpt4 book ai didi

sql - MS SQL 标识列在标识列上未正确计数

转载 作者:行者123 更新时间:2023-12-02 09:29:20 25 4
gpt4 key购买 nike

我正在使用 MS SQL Server。有人能告诉我为什么我的数据库中的身份列在应该自动加 1 的情况下却出现了数字的疯狂跳跃吗?首先,我一直在逐行输入数据。最终,在可能有 100 个条目之后,它会将它们按不按顺序排列,将 101 粘在 31 个不按顺序的条目之后。现在,它突然从 290 跳到了 1400,而它应该仍然正常......管理工具仍然显示正确的条目数,但它应该如何以 1 计数,这是没有意义的。有人可以向我解释一下吗?

enter image description here

<cfif structKeyExists(form, "user_pass")> 
<!--- form has been submitted --->

<cffile
action = "upload"
fileField = "filefieldname"
destination = "#expandPath("/webapps/dash/images/")#"
nameConflict = "MakeUnique"
result = "myfile"
/>

<cfset imagePath = myfile.serverDirectory & "/" & myfile.serverFile>
<cfif isImageFile(imagePath)>
<cfquery datasource="test" name="UserRegistration">
INSERT INTO dbo.Users (employee_number, user_name, user_pass, firstname, lastname, position, email, phone_extension, branch, department, status, picture, admin)
VALUES (
<cfqueryparam value='#form.employee_number#' cfsqltype='cf_sql_varchar' />
, <cfqueryparam value='#form.user_name#' cfsqltype='cf_sql_varchar' />
, <cfqueryparam value='#form.user_pass#' cfsqltype='cf_sql_varchar' />
, <cfqueryparam value='#form.firstname#' cfsqltype='cf_sql_varchar' />
, <cfqueryparam value='#form.lastname#' cfsqltype='cf_sql_varchar' />
, <cfqueryparam value='#form.position#' cfsqltype='cf_sql_varchar' />
, <cfqueryparam value='#form.email#' cfsqltype='cf_sql_varchar' />
, <cfqueryparam value='#form.phone_extension#' cfsqltype='cf_sql_varchar' />
, <cfqueryparam value='Desoto' cfsqltype='cf_sql_varchar' />
, <cfqueryparam value='#form.department#' cfsqltype='cf_sql_varchar' />
, <cfqueryparam value='Active' cfsqltype='cf_sql_varchar' />
, <cfqueryparam value='#myfile.serverFile#' cfsqltype='cf_sql_varchar' />
, <cfqueryparam value='No' cfsqltype='cf_sql_varchar' />
)
</cfquery>

<script>
self.location="../login.cfm";
</script>
<cfelse>
<script>
<!--- not an image file so return some kind of validation message... --->
alert("Not an image file");
self.location="../register.cfm";
</script>
</cfif>
</cfif>

最佳答案

数字保证单调递增,但不相邻。 Here是一些相关文档。

一般来说,标识列也被限制为唯一键或主键。然而,如果没有这些限制,它们甚至不能保证是唯一的。

它们确实增加了。这种奇怪的行为是为了提高效率,特别是在并行系统中。

如果需要的话,在查询时获取没有间隙的连续值是很容易的:

select row_number() over (order by id) as sequential_with_no_gaps

关于sql - MS SQL 标识列在标识列上未正确计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34822316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com