【发布时间】:2021-08-03 05:06:02
【问题描述】:
我支持数据复制产品。我有一个客户非常沮丧,因为 SQL Server 不能有一个带有 Identity 列的表,当添加一行而不为该列提供值时会自动递增,同时会接受/使用一个值它是提供的——我可能会补充说,这两件事都以高速率连续发生,并跨越数百张桌子。他们指出其他显然可以做到这一点的数据库。
我在网上看到的一切和我自己的实验似乎都表明这根本无法在 SQL Server 中完成,但我想把它放在那里,以防我错了并且遗漏了一些东西。到目前为止,我对他们的唯一建议是切换到序列(而不是身份)并将其用作列的默认值。我已经对其进行了测试,它的工作原理完全符合他们的要求,但他们对为数百张桌子这样做的想法感到不满。谢谢。
【问题讨论】:
-
编写一个脚本来转换 DML 以使用序列?如果他们不能被要求做出改变,那么他们就不会得到改变。他们不能只希望或要求功能存在。
-
也许这是 OP 提出的 真正 问题,@MatBailie:“我如何为
ALTER我的所有表格创建一个脚本,并使用IDENTITYSEQUENCE?”当然,答案并不简单;特别是如果这些列是主键,并由外键引用。 -
@larnu 确实,可能是这样。如果是这样,那应该是问题。
标签: sql-server etl database-replication identity-column