SQL从表双主键,Item_No自加

主要思路:找出当前的Item_No,加一 —>将插入的数据保存入临时表,更新Item_No—>Select式插入
ALTER TRIGGER [dbo].[addItemList]
ON [dbo].[Te_Lista]
instead of INSERT
AS
 DECLARE @NEW_INDEX int
 set @NEW_INDEX = 1
 SELECT TOP 1 @NEW_INDEX=Item_No + 1 FROM Te_Lista
         WHERE  List_No = (select top 1 List_No from inserted) ORDER BY Item_No DESC
 SELECT * INTO #tmp FROM inserted
 UPDATE  #tmp
 SET Item_No = Item_No

 INSERT dbo.Te_Lista
 SELECT *
 FROM #tmp

 DROP TABLE #tmp

go

本来也想用函数,做成一个通用的,但是 --存储过程可以(函数不可以)

我觉得这种通用的触发还是写存储过程吧,就不要像我一样,一个个愚蠢的加到每张表,存储过程以后更新

把字段名一个个写出来查询这个方法太蠢了,所以我觉得使用exec执行动态sql语句,但还是悲剧了.

实际上,在INSTEAD OF INSERT触发器只接insert 原表,sql不认定为递归,而通过exec调用插入

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值