在SQL中创建好的TRIGGER 触发器 功能执行没问题但是有时候会自动消失,请问这个是为什么

Mairky 2015-12-18 08:18:39
话不多说,带上源码,看看是不是代码的问题。


create TRIGGER TRIGGER_PaiPin
ON AuctionRecord FOR INSERT
AS
--用户编号 代理出价 加价幅度 当前最高价格 当前设置代理出价数量 拍品编号 最后一个出价人ID 最后一个人出价商品
DECLARE @UserID INT,@Price MONEY,@fudu MONEY,@dqmoney MONEY,@proxyCount INT,@paoductid INT,@lastUserID INT,@lastproductid INT

--查询有效 设置代理出价的用户的个数
SELECT @proxyCount=count(1) FROM ProxyRecord p INNER JOIN paipinInfo pi ON pi.Id=p.productId
WHERE p.flat1=0 AND pi.isshenhe=3

IF @proxyCount>0
BEGIN
WHILE @proxyCount>0
BEGIN
SELECT @paoductid=productid,@UserID=userid,@Price=price FROM(
SELECT row_number() OVER(ORDER BY id asc) AS rowid,id,productid,userid,price
FROM ProxyRecord WHERE flat1=0 and productID IN(
SELECT id FROM paipinInfo WHERE isshenhe IN (3) AND flat1=0 AND (remark2 IS NULL OR remark2<>'1')
)) AS D WHERE rowid=@proxyCount

IF @UserID>0 AND @Price>0
BEGIN
--找到最后一个出价的商品编号
SELECT TOP 1 @lastproductid=productid FROM AuctionRecord ORDER BY id DESC

IF @lastproductid=@paoductid
BEGIN
--PRINT convert(NVARCHAR(20),@Price)+' '+convert(NVARCHAR(20),@UserID)+' '+convert(NVARCHAR(20),@paoductid)
--过滤掉最后一个出价
SELECT TOP 1 @lastUserID=userid FROM AuctionRecord WHERE productID=productid ORDER BY Id DESC
IF @lastUserID<>@UserID
BEGIN
SELECT @fudu=fudu FROM paipinInfo WHERE Id=@paoductid
SELECT @dqmoney=max(price) FROM AuctionRecord WHERE flat1=0 AND productId=@paoductid
IF @dqmoney<@Price
BEGIN
INSERT INTO dbo.AuctionRecord (userid,productId,price,addtime,flat1,flat2)
VALUES (@UserID,@paoductid,@dqmoney+@fudu,getdate(),0,0)
END
END
END

END
SET @proxyCount=@proxyCount-1
END
END

GO

...全文
371 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2015-12-18
  • 打赏
  • 举报
回复
你没做不等于人家也没有做, 可能其它人做了。 你先按人家的做了再说
引用 6 楼 u011184734 的回复:
4L 那个跟踪根本执行不了。 因为触发器执行是没有问题的。 他是突然消失的,所以根本查看不到什么时间记录
Mairky 2015-12-18
  • 打赏
  • 举报
回复
4L 那个跟踪根本执行不了。 因为触发器执行是没有问题的。 他是突然消失的,所以根本查看不到什么时间记录
Mairky 2015-12-18
  • 打赏
  • 举报
回复
是的,无缘无故就消失了。我没有做任何drop create tbale的操作。
唐诗三百首 2015-12-18
  • 打赏
  • 举报
回复
LZ可以建个DDL触发器跟踪/记录一下DROP TRIGGER的事件详细信息. 参考 http://blog.csdn.net/ap0405140/article/details/17918595
吉普赛的歌 2015-12-18
  • 打赏
  • 举报
回复
你看下你完整的代码, 看有没有删除触发器的地方。
Yole 2015-12-18
  • 打赏
  • 举报
回复
触发器没有问题啊~ 里没也没有drop触发器的地方。 您说的自动消失是触发器没有了么?
Mairky 2015-12-18
  • 打赏
  • 举报
回复
有没有大神来回答一下我的问题啊,在线等。 急!!!!!!!!!!!!!!
Neo_whl 2015-12-18
  • 打赏
  • 举报
回复
你的数据库有几个人有操作权限?你没有删除有可能别人删除了,查看操作日志应该能查到
Mairky 2015-12-18
  • 打赏
  • 举报
回复
DDLHistory 此表没有数据,当触发器被触发的时候。 [Tr_AuditDDL] 这个触发器为什么找不到,但是数据库说已经存在了?

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧