identity-column相关内容

查询以获得下一个身份?

查询以获得下一个身份?这对于没有删除记录的表是可能的: SELECT TOP 1 EMPID + 1 FROM Employee ORDER BY EMPID DESC 如果有删除数据,我将如何获得下一个身份?例如我有一个这样的表: EMPID 名称第4001章第4002章4003 ----------------------- 这个被删除了第4004章第4005章第4006章第4007章第 ..
发布时间:2022-01-16 23:31:58 其他开发

即使事务回滚,SQL 标识(自动编号)也会增加

我有一个 .net 事务,其中包含对 SQL Server 2005 数据库的 SQL 插入.该表有一个身份主键. 当事务中发生错误时,会调用Rollback().行插入正确回滚,但是下次我将数据插入表时,标识会增加,就好像回滚从未发生过一样.所以本质上在身份序列中存在差距.有没有办法让 Rollback() 方法回收丢失的身份? 我这样做的方式不对吗? 解决方案 如果你仔细想 ..
发布时间:2022-01-01 10:34:01 C#/.NET

向现有列添加标识

我需要将表的主键更改为标识列,并且表中已经有许多行. 我有一个脚本来清理 ID,以确保它们从 1 开始是连续的,在我的测试数据库上运行良好. 更改列以具有标识属性的 SQL 命令是什么? 解决方案 您不能更改现有列的标识. 你有两个选择, 创建一个具有身份的新表 &删除现有表 创建一个带有标识 & 的新列删除现有列 方法 1.(新表)在这里您可以保留新创 ..
发布时间:2021-11-27 08:35:14 数据库

使用标识列进行单元测试

我在 SQL Server 表中使用 IDENTITY 列. 我有一个单元测试,我删除了具有特定 ID 的数据记录. 当我插入测试数据时,出现此异常: 当 IDENTITY_INSERT 设置为 OFF 时,无法为表 'MyTablename' 中的标识列插入显式值 然后我在我的管理工作室做一个快速测试: SET IDENTITY_INSERT MyTablename O ..
发布时间:2021-09-14 19:15:02 C#/.NET

SQL Server 如何在标识列中生成值?

我的问题是,如果我有两个并行的批量插入到一个表中,SQL Server 如何创建标识值? 我的意思是,如果在一个会话中我插入多行(Row1-Row2-Row3),同时另一个会话同时插入多行(Row4-Row5-Row6),结果会是这样吗? Row1第 2 行第 3 行第 4 行第5行第6行 或者类似的东西? Row1第6行第 3 行第5行第 4 行第 2 行 解决方案 您犯了假定表 ..
发布时间:2021-09-10 19:54:01 数据库

为什么 Teradata Identity 列有负值?

我对 Teradata 非常陌生(1 周),我的主要技能是 SQL Server.我正在将数据从 TeraData 表之一提取到 SQL Server 表,而 TD 表有一个带有负值的标识列.我查看了该表的 DDL,它没有提到以值开头和结尾. 那么,TeraData 中的负值是如何产生的?此外,如果我将其转移到 SQL Server,我应该创建一个新的标识列还是应该只保留从 TeraData ..
发布时间:2021-09-05 20:25:53 其他开发

唯一标识符作为 SQL Server CE 中的标识?

在 SQL Server CE 中,我可以创建一个数据类型为 uniqueidentifier 的标识列吗?如果是这样,如何?如果没有,为什么不呢? 我尝试在 VS2010 的服务器资源管理器中使用“新表"创建它,只有当类型为 int 时,身份选项才会启用. 编辑: 根据 EricEJ 的建议,我确实做了专栏 PK.我也将它设置为“RowGuid" 创建表 [MyTable] ..
发布时间:2021-08-27 19:26:49 其他开发

在创建它的同一个 T-SQL 语句中获取 IDENTITY 值?

我被问到是否可以有一个插入语句,它有一个 ID 字段是“身份"列,并且分配的值是否也可以插入到同一条记录中的另一个字段中,在同一个插入中声明. 这可能吗(SQL Server 2008r2)? 谢谢. 解决方案 您不能真正做到这一点 - 因为将用于 IDENTITY 列的实际值实际上只是在INSERT 已完成. 但是你可以使用例如一个触发器 在 dbo.YourTabl ..
发布时间:2021-08-27 18:43:54 数据库

查询以获取下一个身份?

查询以获取下一个身份?这对于没有删除记录的表是可能的: SELECT TOP 1 EMPID + 1 FROM Employee ORDER BY EMPID DESC 如果有删除的数据,我将如何获得下一个身份?例如我有一个这样的表: EMPID 名称第4001章第4002章4003 ----------------------- 这个被删除了第4004章第4005章第4006章第4007章 ..
发布时间:2021-08-27 18:34:02 其他开发

数据库上的 RESEED 标识列

我可以用吗 DBCC CHECKIDENT(, RESEED, value) 在 SQL Server 2008 中将标识列当前值重置为原始值的命令? 如果是,这是没有任何缺点的正确操作方法吗?如果没有,是否有其他方法可以做到这一点? 解决方案 是否可以使用 DBCC CHECKIDENT 命令将标识列当前值重置为 SQL Server 2008 中的原始值? 是的. ..
发布时间:2021-08-25 19:36:59 数据库

SQL Server - 允许 UPDATE 语句的自动增量

在我的数据库中添加项目时,我需要它自动确定字段 DisplayOrder 的值.Identity(自动增量)将是一个理想的解决方案,但我需要能够以编程方式更改(更新)DisplayOrder 列的值,而 Identity 似乎不允许这样做.目前,我使用此代码: 创建程序 [dbo].[AddItem]作为声明 @DisplayOrder INTSET @DisplayOrder = (SELEC ..
发布时间:2021-08-25 19:03:45 数据库

一个 sql server 表可以有两个标识列吗?

我需要将一列作为主键,另一列用于自动增加订单号字段.这可能吗? 编辑:我想我会使用一个复合数作为订单号.还是谢谢. 解决方案 CREATE TABLE [dbo].[Foo]([FooId] [int] IDENTITY(1,1) 非空,[BarId] [int] IDENTITY(1,1) 非空) 返回 Msg 2744, Level 16, State 2, Line 1为表 ..
发布时间:2021-08-25 18:55:26 数据库

身份增量在 SQL Server 数据库中跳跃

在我的一个表中,SQL Server 2012 数据库标识增量中“ReceiptNo"列中的 Fee 突然开始跳到 100s 而不是 1,这取决于以下两件事. 如果是1205446就跳转到1206306,如果是1206321就跳转到1207306,如果是1207314就跳转到1208306.我要让你注意的是最后三位数字仍然存在如下图所示,每当发生跳跃时,常量即 306. 当我重新启动计 ..
发布时间:2021-08-25 18:39:27 数据库

如何在 SQLite 数据库中重新设置自动增量列?

是否可以在 SQLite 数据库中重新设置自动增量列的种子,如果可以,如何完成? 即.相当于 SQL Server 中的 DBCC CHECKIDENT ('MyTable', RESEED, 1). 解决方案 在 SQLite 中有一个名为 SQLITE_SEQUENCE 的表,它跟踪表具有的最大 RowId 值.您可以在此表上执行插入、更新和删除操作.例如,要模拟与 SQL Se ..
发布时间:2021-08-23 19:14:24 数据库