如何创建触发器以将值插入到插入时为 Max([ID Field])+1 的 ID 字段中
Posted
技术标签:
【中文标题】如何创建触发器以将值插入到插入时为 Max([ID Field])+1 的 ID 字段中【英文标题】:How do I create a trigger to insert a value into an ID field that is Max([ID Field])+1 on insert 【发布时间】:2012-07-02 13:16:58 【问题描述】:当我添加新记录时,我希望 SQL Server 自动添加新 ID。
已经有一些记录已经迁移过来(从 Access),在我完成为其他所需功能准备服务器之前,我将手动迁移更多记录(如果这会影响任何可能的答案)。
实现这一点的最简单方法是什么。
【问题讨论】:
通常情况下,不推荐使用这些方法,因为这个简单的系统很可能在负载下惨遭失败 - 抛出重复值。 【参考方案1】:最简单的方法是将列设为IDENTITY
column。 Here is an example of how to do this(不像ALTER TABLE
那么简单)。
【讨论】:
谢谢 Aaron,因为无论如何我都会使用 MS Access 作为前端。我想我会在那里控制父 ID。家长 ID 不多(一天不超过三个),所以不会有问题。【参考方案2】:使用Identity
字段类型。这将使用序列中的下一个可用数字自动为您创建一个值。
这是一个如何在现有表上创建Identity
列(添加新列)的示例
ALTER TABLE MyTable ADD IdColumn INT IDENTITY(1,1)
【讨论】:
以上是关于如何创建触发器以将值插入到插入时为 Max([ID Field])+1 的 ID 字段中的主要内容,如果未能解决你的问题,请参考以下文章
Postgres 创建触发器函数以在允许插入之前将值从一列复制到另一列