SQL:没有标识功能使用触发器解决方法

时间:2009-05-29 02:33:54

标签: sql sql-server stored-procedures triggers identity-insert

我的触发器有点生疏,什么不是,我试图找出一个类的问题:

在数据库TEST中,表格没有IDENTITY功能选项。换句话说,当我们在表“Users”中插入一行时,我们希望主键“UserID”自动增加。如果没有这样的内置功能,请建议一种解决方法来实现此功能。 (提示:您仍然可以使用函数,存储过程,序列,触发器等)

2 个答案:

答案 0 :(得分:1)

对表名为ID的主键使用Int列。

然后,您可以使用而不是“插入触发器”来填充/计算要为ID插入的值。

触发器将确定相关表的最大现有ID(使用TableA中的select MAX ID),然后为每个要插入的记录将其递增1。

如果表中没有记录,则ID值为1.

答案 1 :(得分:0)

你使用一个序列,它在Oracle中很常见,它没有(或者没有一次,它可能已经改变)有标识列。由于这是家庭作业,我会让你从这里找出其余部分。