【发布时间】:2013-05-18 08:56:19
【问题描述】:
我在一个表中有两个主键列。第二列基于第一列。我给你看他们的数字,看 splr_Slno 是基于 splr_Id。
我给你看另一个例子
当我删除 splr_Id '21' 和 splr_Slno '2' 的记录时,它应该是这样的
下面有个触发器
ALTER TRIGGER [dbo].[trigger_i]
ON [dbo].[table]
AFTER DELETE
AS
BEGIN
SET NOCOUNT ON;
--Declarations
declare @intSplrlid as int
declare @autoSplrslno as int
set @autoSplrslno=0
--Process
set @intSplrlid = (select splr_Id from deleted)
--set @autoSplrslno = (select splr_Slno from deleted)
update dbo.table set splr_Slno = @autoSplrslno+1 where dbo.table.splr_Id =@intSplrlid;
结束
第二条记录被删除...,我想要的是 splr_Slno 应该在记录被删除时自动生成
【问题讨论】:
-
为什么要这样做?当删除 2 时,您希望 splr_Slno 像 1 2 3 4 一样有序。我的意思是你想重新排列顺序?一种方法是通过循环迭代来创建游标并更新行。
-
因为我想从用户推荐的前端删除记录。我希望删除记录时自动生成 splr_Slno
-
您是否使用存储过程进行删除?如果是,请告诉我。所以我可以在SP中编写代码。或者如果你想要触发器,我会在触发器中编写代码。
-
否,使用此查询“delete dbo.table where splr_Id=21 and splr_Slno=2”
-
我正在使用自动增量触发器,但它显示错误我正在更新我的问题
标签: sql triggers primary-key auto-increment