我有一个客户绝对坚持他们的数据库不应该有标识列,并且在创建表行的存储过程中手动实现了他自己的增量器。它的编写是为了确定下一个 ID 值,然后在插入语句中使用它。显然,这很容易出现许多问题。
所以这是我的问题:假设通常的自动方法是不可能的,那么在 SQL 中实现标识列的最佳方法是什么?
最佳答案
Assuming that the usual, automatic, method is out of the question, what is the best way to implement an identity column in SQL?
根据定义,通常的自动方法是使用identity
列。其他一切都是蹩脚的方法。与您的客户讨论此事。假设他们这样做有原因或有误解,您可以帮助他们解决原因或澄清身份
不是危险的怪物。
如果无论如何都必须执行此操作,请确保跟踪身份(递增身份)和向表中插入新行的任务是在具有适当隔离级别的单个事务中完成的。 (并开始寻找新工作)
关于sql-server-2005 - SQL Server 2005中手动实现的Identity列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2330398/