问题标签 [identity-column]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
3137 浏览

sql-server - 您如何合并具有自动编号主键的表?

我想每个人都会偶尔遇到这个问题:您有两个表,它们的主键自动编号需要合并。使用自动编号主键来支持应用程序生成的键的原因有很多,但与其他表合并肯定是最大的缺点之一。

出现的一些问题是重叠的 id 和不同步的外键。我想听听你解决这个问题的方法。我总是遇到问题,所以我很好奇是否有人有某种通用解决方案。

- 编辑 -

针对建议使用 guid 或其他非数字键的答案,在某些情况下,提前使用自动编号键似乎是一个更好的主意(稍后您会后悔),或者您正在接管其他人的项目,或者你得到一些你必须使用的遗留数据库。所以我真的在寻找一个你不再控制数据库设计的解决方案。

0 投票
3 回答
1072 浏览

sql-server - 在表之间移动数据并生成旧标识值到新标识值的映射的最佳方式

我需要将 2 个表中的数据合并到第三个表中(都具有相同的模式)并生成旧标识值到新标识值的映射。显而易见的方法是使用游标遍历源表,沿途插入新旧标识值。有没有更好的(可能是面向集合的)方法来做到这一点?

更新:另外一点信息:目标表已经有数据。

0 投票
1 回答
72 浏览

sql - 替换现有 SQL 数据库表中的 PK

现在我有一个 PK 所在的数据库int IDENTITY。去年,我最近的任务是将这些添加到复制拓扑中。除了 IDENTITY 字段之外,这已经很好地解决了。

我想探索使用uniqeidentifier(GUID) 更改或替换它们的选项。
插入新的PK列是否可行?
我会更好地将其增加到 abig int吗?

还有什么我应该考虑的吗?


详细说明我为什么要这样做:

据我了解,当复制遇到 IDENTITY 列时,它会为每个订阅者预留一个身份范围,例如 1-1000(默认),以确保该列的唯一 INT。您拥有的订阅者越多,它可能会成为更大的问题。这导致了我们不断收到的身份范围检查约束错误。

谢谢

0 投票
1 回答
134 浏览

sql-server - 帮助确定正确的身份范围大小

我有大约 200 个订阅者的合并复制。我正在尝试确定某些表上合适的身份范围大小。您会看到我继承了一个不是为复制而设计的数据库结构,因此所有表 PK 都是 int IDENTITY。不幸的是,其中一些表是在没有任何跟踪字段的情况下构建的,所以我不知道它们是什么时候插入的,所以我无法估计所需的订阅者范围的大小。

有人有建议吗?

0 投票
3 回答
19195 浏览

sql-server - 数据库上的 RESEED 标识列

我可以使用

将标识列当前值重置为 SQL Server 2008 中的原始值的命令?

如果是,这是进行此操作的正确方法而没有任何缺点吗?如果没有,是否有另一种方法可以做到这一点?

0 投票
2 回答
5232 浏览

junit - 在表上打开 IDENTITY_INSERT 以使用 DB Unit 加载它

我尝试使用数据库单元加载具有标识列的表。我希望能够自己设置 id 值(我不希望数据库为我生成它)。

这是我的表的最小定义

要在 X 中插入一行,我执行以下 SQL

没问题。但是当我尝试使用以下数据库单元 XML 数据集 (RS_7_10_minimal_ini.xml) 加载此表时

使用以下最小 JUnit (DBTestCase) 测试用例:

它失败并出现以下异常

在插入指定了标识列的值的行之前,数据库单元似乎没有打开标识。

我已经尝试在从 JdbcDataBaseTester 检索到的连接上执行自己,但没有运气。可能是用于将数据推送到数据库的新连接或不同的连接。

任何想法?

非常感谢大家的帮助!

八度

0 投票
2 回答
1641 浏览

sql - 具有同步 IDENTITY 列的 SQL 多个表

我正在“清理”数据库并需要同步 IDENTITY 列。我正在使用存储过程来处理数据并将其从一个表镜像到下一个表(在清理并更正数据类型之后)。在将来的某个时候,我会想切断旧表并只使用新表,我的问题是如何让 IDENTITY 字段在它们都在使用时保持同步......一旦旧表被删除新的将需要继续自动递增和重建/更改它以更改 IDENTITY 字段不是一种选择。这是可能的还是有更好的方法来解决这个问题?

我的另一个想法是创建一个查找表来存储两个表的 ID 列,并且任何时候在新表中插入旧 ID 和新 ID 并将它们插入到查找表中。一旦旧桌子不碍事,这有点乱。

0 投票
6 回答
23954 浏览

c# - 在 SQL Server 中将标识列重置为零?

如何在 SQL Server 中将表的标识列重置为零?

编辑:

我们如何使用 LINQ to SQL 来做到这一点?

0 投票
1 回答
4469 浏览

sql - 将数据从一个 SQL Server 表复制到同一数据库中的另一个表而不指定列

在 SQL Server 中,可以INSERT使用以下语句将一个表中的所有数据转换到另一个表中:

在具有标识列的表上运行此命令时,即使我们运行了命令SET IDENTITY_INSERT TABLE1 ON,我们也会收到错误:

An explicit value for the identity column in table can only be specified when a column list is used and IDENTITY_INSERT is ON

这意味着我们必须列出 中的所有列INSERT才能使其正常工作。在我们所处的情况下,我们无法访问列名,只能访问需要复制的表列表。有没有办法绕过这个限制?

0 投票
2 回答
1455 浏览

oracle - EF4 Oracle 身份插入

有谁知道是否可以在不使用 StoredProcedure 的情况下从 ef4 调用 oracle 的 sequence.NextVal?我有一个无法修改的客户端的 Oracle 数据库,因此 stroedproc 不适合我。我使用ef4 ctp5。

感谢!