我在SQL Azure上安装了这个表
CREATE TABLE [dbo].[Sl](
[ID] [int] IDENTITY(1,1) NOT NULL,
[PublicId] [uniqueidentifier] NOT NULL,
CONSTRAINT [PrimaryKey_ba033f1f-ac1b-4616-8591-fcd47fe0f63d] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON),
CONSTRAINT [PublicId_UNIQUE] UNIQUE NONCLUSTERED
(
[PublicId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
Run Code Online (Sandbox Code Playgroud)
非常奇怪的是,ID会以意想不到的方式递增.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 …Run Code Online (Sandbox Code Playgroud) 我在我的网站上使用实体框架6.0.
我有一个表插入一些数据,这个表有ID(int)的标识列,我的标识种子等于1;
有些时候,我通过sql管理工作室看这个表,我通过将这个ID跳到大号来遇到,例如从30跳到10024.
为什么会这样?这是一个错误还是什么?
我在这里发布了我的示例代码,我通过以下代码向此表插入数据:
using (var context = new MyModelDBEntities())
{
mytable mt=new mytable;
mt.name=""; //for example
context.mytables.add(mt);
context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
这个代码是正常的吗?那么发生在我的桌子上的那个身份号码跳到了一个大号?
我正在使用godaddy共享主机和SQL Server.有两个表(usertbl,patienttble),主键自动递增1.我使用LINQ to SQL类进行数据库操作.
问题是在将uid(来自usertbl的主键)添加为1443之后,SQL Server将下一行uid添加为11443,并且在患者的同一操作中,之前的id为1439,它添加了下一行,id为11439.我无法理解这是怎么发生的.在此问题发生之前和之后,表中的id都正确递增1.
我在EntityFramework中有一个表,其中有一个以ID命名的字段,该字段是主键,是Identity.当我将记录添加到此表中时,此字段值会增加每个记录,在添加几个记录后,此值突然增加例如,从1010中的90增加而没有任何事务不成功.问题是什么?
我注意到SQL Sever(2008 express)在插入自动递增标识规范时会随机跳转.
例如,我的一列"HitStat_ID"将按顺序插入15,16,17,18,然后突然间,它将决定跳转到1012,1013,1014 ....然后9120,9121等.
它真的没关系,只要它们是独一无二的(它们是什么),但它为什么会这样做呢?它也可以在多个表中执行...奇怪的是,这只是在过去一周内完成的,但应用程序已经开发了几个月!
ETA:我在ASP.NET VB中工作这是插入(在这种情况下):
sql = "INSERT INTO [HitStats] ([PageName], [Date_and_Time], [User_ID]) values ('Home',
'" + TheDateTime + "', '" + Session("User_ID") + "')"
Dim dbcmd As SqlCommand = New SqlCommand(sql, dbconn)
dbcmd.ExecuteNonQuery()
dbcmd.Dispose()
Run Code Online (Sandbox Code Playgroud)
请不要继续关于sql注入等等等等,它不会发生!
我primary key/Id在项目中的一张表有问题。在该表中,Id突然从跳下38来1039。
现在真正的问题是,当我通过1039它找到实体时,它并不存在,但是通过它找到39了实体。我不确定这种行为,因此无法找到解决方案。
我的模型
public class Domain : Entity
{
public string Name { get; set; }
public string Description { get; set; }
}
public abstract class Entity
{
public int Id { get; set; }
public DateTime InsertDate { get; set; }
public DateTime? UpdateDate { get; set; }
public DateTime? DeleteDate { get; set; }
public bool IsDeleted { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
方法是这样的...
public …Run Code Online (Sandbox Code Playgroud) 我有一个包含三列的表,基本的SELECT语句如下所示:
SELECT TOP 1000 [PatchHistoryId]
,CASE
WHEN [PatchName] LIKE N'1_%' THEN '1_aaa'
WHEN [PatchName] LIKE N'2_%' THEN '2_bbb'
WHEN [PatchName] LIKE N'3_%' THEN '3_ccc'
WHEN [PatchName] LIKE N'4_%' THEN '4_ddd'
WHEN [PatchName] LIKE N'5_%' THEN '5_eee'
WHEN [PatchName] LIKE N'6_%' THEN '6_fff'
WHEN [PatchName] LIKE N'7_%' THEN '7_ggg'
WHEN [PatchName] LIKE N'8_%' THEN '8_hhh' END AS PatchName
,[CreatedDate]
FROM [PatchHistory]
Run Code Online (Sandbox Code Playgroud)
结果如下所示:
PatchHistoryId | PatchName | CreatedDate
-------------------------------------------
1 1_aaa 2013-07-19 12:50:14.637
2 2_bbb 2013-07-19 12:50:16.570
1002 3_ccc 2013-07-26 08:53:33.557
1003 …Run Code Online (Sandbox Code Playgroud) 我正在使用MS SQL Server.有人请告诉我为什么我的数据库中的我的标识列只是在数字自动增加1时自动增加数字?首先,我一直在逐行输入数据.最终可能在100个条目之后,它们将不按顺序将它们紧跟在31之后.现在突然它已经从290's跳到了1400's时它应该仍然有序......管理工具仍然显示正确数量的条目,但它只是没有意义这应该是如何计算一个.有人请向我解释一下吗?
<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' />
, …Run Code Online (Sandbox Code Playgroud) 在我的 MS SQL Server 上的所有数据库表中,每次重新启动服务器时,id 列都会跳动 1000 或更多。由于这是一个本地应用程序,并且服务器由我的一台笔记本电脑托管,因此我每天都会关闭它,从而关闭服务器。
最终,这个程序将在大规模环境中使用,我对这种行为感到担忧——计算一下,如果每次有新的 id 增加 1000 时,我仍然有超过 400 万个唯一的 id。已输入,但计划是让该数据库不断增长。如果我用完唯一 ID 会怎样?BigInt也遇到这个问题,但是增加了10,000而不是1000。我查遍了互联网,似乎很多人通过设置-t272作为启动参数来解决这个问题,但它对我不起作用。谁能告诉我解决方法吗?
在处理SQL Server数据库时,我发现SQL Server 2012 Enterprise Edition中的标识列值突然跳转到101.
数据库中共有10条记录(1到10).没有执行删除操作,并且在插入记录号11时,工具101.
我在浏览了一些在线帮助后找到了原因:
这件事后面还有其他原因吗?